php - 在sql中为变量使用命名参数
问题描述
我的代码不起作用,我做错了什么,是否可以使用命名参数作为键。我正在尝试将其分配给我的 sql“其中用户名 = aaron”中的变量部分而不对其进行硬编码的位置,如果不是,请如何完成
$select = $conn->prepare("SELECT * FROM users WHERE :key = :username ") ;
$select->execute([":key"=> "username", ":username"=> 'aaron' ]) ;
解决方案
它不起作用,因为它将 :key 替换为“用户名”而不是用户名,因此您的查询最终将是:
SELECT * FROM users WHERE 'username' = 'aaron'
SQL 绑定最初是为了替换变量(改变的东西)而不是常量(在这个例子中你的列名)。
如果你仍然想做这样的事情,你需要自己编写代码,而不是使用 ->execute 方法。
推荐阅读
- linked-list - 这个程序是栈队列和链表的组合
- python - 编写一个接收整数列表的函数,如果它按顺序包含 007,则返回 True - 我的代码不起作用
- python - 使用傅里叶变换找不到信号的频率
- html - 如何使用对本地 JSON 文件的一个请求来填充多个下拉列表,使用 jQuery?
- flutter - 从小部件颤振切割矩形?
- peerjs - 如何以编程方式断开用户与 peerServer 的连接
- python - 数据框中的多个过滤器
- networking - 从主机操作系统访问 VirtualBOX Machine 的服务器
- php - Symfony - Api 平台 - 子资源错误
- java - 如何在android中更改日期选择器背景颜色