使用MYSQL进行字符串格式化 - PHP

时间:2011-11-22 23:21:42

标签: php mysql

是否可以在$ query字符串的末尾添加 WHERE id ='$ id'?我的$查询字符串读作:

 $query = 'UPDATE students SET ' . join (' , ', $sqlConditions);

由于

2 个答案:

答案 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);