我有一个查询,查看文件夹中的文件列表,并将所有内容的名称输入数据库,以便在显示图像时控制排序。
现在我有了一张名为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
内,以及如何在进入数据库时忽略它?
答案 0 :(得分:1)
您需要转义数据。使用prepared queries with PDO,这样您就不必担心这一点。
您目前对SQL injection持开放态度。
至少使用mysql_real_escape_string(),假设您在PHP中使用标准MySQL库。它会处理引号,以及许多其他内容,正确地转义它们,以便将它们插入到您的数据库中。