更新SQL查询-设置值为PHP字符串变量


Update SQL query - Set values to PHP string variable

这可能是一个非常微不足道的问题,但我已经挣扎了一段时间,也试图在网上找到答案,仍然得到错误。

尝试为PHP/MySql表单写一个简单的UPDATE查询:

  $sql="UPDATE mytable SET numericValue = '".$someid."', description =  '".$sometext."' WHERE id='".$myid."' ";

虽然所有的数值都被传递和更新很好,我不能得到正确的描述。描述列是一个VARCHAR和$sometext是一个字符串,我不能得到它转义/用引号正确包装。

您应该使用sprintf,它通过提供占位符(%d表示小数,%s表示字符串)来避免字符串混淆。

$sql= sprintf("UPDATE mytable SET numericValue = %d, description = '%s' WHERE id = %d", $someid, $sometext, $myid);

如果$someText来自GET/POST/..你应该在它周围包装一个mysql_real_escape_string(),以防止SQL注入(或使用PDO准备语句)。

$sql="UPDATE mytable SET numericValue = '$someid' , description = '$sometext' WHERE id='$myid' ";
我认为你必须担心sql注入。