是否可以在$ query字符串的末尾添加 WHERE id ='$ id'?我的$查询字符串读作:
$query = 'UPDATE students SET ' . join (' , ', $sqlConditions);
由于
答案 0 :(得分:3)
$query = 'UPDATE students SET ' . join (' , ', $sqlConditions) . ' WHERE id = "' . $id . '"';
如果$ id只是一个数字(最有可能),你可以做...
$query = 'UPDATE students SET ' . join (' , ', $sqlConditions) . ' WHERE id = ' . $id;
也可以使用mysql_real_escape_string()作为ZombieHunter在他的回答中回复。
答案 1 :(得分:2)
不直接附加变量。使用mysql_real_escape_string()
来避免潜在的SQL注入!
我强烈建议您阅读有关SQL注入的页面:
http://www.php.net/manual/en/security.database.sql-injection.php
如果$sqlConditions
包含多个条件(如变量名称所示),则这是一个危险的操作。无论如何,如果你真的想以这种方式使用它,你需要把它放在WHERE条件之后。
$query = 'UPDATE students SET column = value WHERE ' . join(' , ', $sqlConditions) . ' AND id = ' . mysql_real_escape_string($id);
如果$sqlConditions
包含SET语句,这也是一个危险的操作。将实际列名与mysql_real_escape_string()
一起使用:
$query = 'UPDATE students SET column1 = value1, column2 = value2 WHERE id = ' . mysql_real_escape_string($id);