我有一个名为users的表,如下所示:
____ ____ __________ _____________
| | | | | | | |
| id | | name| |firstCon | | secondCon |
|____| |_____| |________ | |___________|
1 john true false
2 mark false false
我想换衣服 firstCon
以及 secondCon
价值观 true
或者 false
.
所以我使用以下查询:
$sql = "UPDATE users SET ? = ? WHERE name = ?";
$query->bind_param($condition, $value, $name);
哪里 $condition
或者 firstCon
或者 secondCon
, $value
= true/false
, $name
是用户的名称。
我得到一个错误:
1064 You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version
for the right syntax to use near '? = ? WHERE name = ?'
我使用这个方法,因为我不知道选择了哪个条件,所以我依赖于名称。
1条答案
按热度按时间ncgqoxb01#
不能将列名(或其他标识符)作为参数传递。下面是一个不需要对查询字符串进行mung的替代方法:
注意:这有更多的占位符。如果将参数作为命名参数传入,可能会更简单: