所以,我有以下 PHP 命令要发布到我的数据库。
$sql = "INSERT INTO `db`.`tab;e` (`id`, `type`, `subtype`, `image1`, `image2`, `image3`, `title`, `body`, `price`, `googlecode`, `date`) VALUES (NULL, '$type', '$subType', '$image1', '$image2', '$image3', '$title', `$body`, '$price', '$googleCode', '$date');";
数据正在通过帖子获取。例如,类型是
$type = $_POST[type];
等等..
但是,在发布内容时,我的代码有时有效,有时无效。
我认为这是因为我使用 niceEdit抓取正文并在发布时,我担心 ' 和 "会干扰我的帖子......
此外,$googlecode
是一堆带有引号和其他内容的 div。
这可能就是我的代码断断续续工作的原因吗?
最佳答案
我猜它有时会失败,因为您没有转义值而是直接将它们添加到查询中。这样,某些值可能会破坏 SQL 语句,并且该语句容易受到 SQL 注入(inject)攻击。
要解决此问题,您必须 escape the values或者更好的是,使用 prepared statements 。还强烈建议添加一些错误处理,以便您可以更轻松地获得有意义的完整错误消息(谢谢 Pekka)。
关于php - mysql 和 php 命令有时无法发布。难道是我 body 的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10944289/