我在四个不同的文件中有这段代码:
else {/* INSERT INTO DATABASE */
mysql_query("INSERT INTO delayed_jobs2 VALUES('','Plumbing','$invoice_number','$timestamp','$delayed_reason','$other_reason','$last_name' )") or die ("Could not insert into database line 2162");
}
除了一个之外,代码运行正常。没问题。在一个我得到一个错误陈述,说:
无法插入数据库行2162
我不确定为什么它在三个不同的文件中工作,而不是第四个。所有四个代码都相同。有什么建议可以看吗?或者如何从数据库中获取更多信息。我相信数据库可能有这个文件的问题,但我不确定。
另外,我知道我的代码已被弃用。我将继续努力。不推荐使用不推荐的代码,因为所有代码都被弃用,而不仅仅是几件代码。
答案 0 :(得分:4)
“正在插入的名称是O'Snowman。单引号是否会导致此错误?”
是的,它是撇号,是一个SQL注入。
正如我在评论中所述:
如果您想保留报价,请使用mysql_real_escape_string()
和addslashes()
。
参考文献:
由于您似乎无法使用MySQL_ API,因此您需要在此处转义所有用户输入。
你真的需要继续使用带有预准备语句的MySQLi_或PDO API;这非常重要。
参考文献: