我有一个查询,查看文件夹内的文件列表,并将所有内容的名称输入数据库,以便我可以在显示图像时控制排序。
现在我今天有一个图像,它的名称是image123('2).jpg
。单引号导致我的查询崩溃,所以我该如何解决这个问题?为了使事情更简单,我设置了示例场景
我有一个包含以下字符串
的4个变量的列表$myVAR1 -- "MyName IS Leo";
$myVAR2 -- "MyName IS 'Tiger";
我正在运行SQL查询将它们输入数据库
$sql = "INSERT INTO `names` (`StringID`, `StringValue`) VALUES (NULL, ' $myVAR1');";
$sql2 = "INSERT INTO `names` (`StringID`, `StringValue`) VALUES (NULL, ' $myVAR2');";
那么我如何检测单引号是在字符串$myVar2
内,我如何在进入数据库时忽略它?
需要转义您的数据。使用PDO准备好的查询,这样你就不用担心这个了。
你现在对SQL注入是开放的。
至少使用mysql_real_escape_string(),假设您正在使用PHP中的标准MySQL库。它负责处理引号,以及其他许多事情,正确转义它们,以便将它们插入到数据库中。