我最近遇到的一个问题是,当尝试使用此代码更新我的数据库中的字段时,它不起作用。我追溯到在正在更新的文本中有一个 %
符号($note
,然后是 $note_escaped
)...用 sprintf
虽然工作正常。
我不应该使用 sprintf
进行更新,还是应该以不同的方式形成?
我做了一些搜索,但找不到任何东西。
$id = mysql_real_escape_string($id);
$note_escaped = mysql_real_escape_string($note);
$editedby = mysql_real_escape_string($author);
$editdate = mysql_real_escape_string($date);
//insert info from form into database
$query= sprintf("UPDATE notes_$suffix SET note='$note_escaped', editedby='$editedby', editdate='$editdate' WHERE id='$id' LIMIT 1");
最佳答案
您使用的 sprintf 完全错误。删除代码中的函数调用仍然会做同样的事情。应该是:
sprintf("UPDATE notes_%s SET note='%s', editedby='%s', editdate='%s' WHERE id=%d LIMIT 1", $suffix, $note_escaped, $editedby, $editdate, $id);
你应该阅读手册。
关于php - 文本中的 sprintf 和 % 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2594044/