如何忽略或检测变量中的符号?

时间:2011-08-06 23:14:44

标签: php sql query-string

我有一个查询,查看文件夹中的文件列表,并将所有内容的名称输入数据库,以便在显示图像时控制排序。

现在我有了一张名为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内,以及如何在进入数据库时​​忽略它?

1 个答案:

答案 0 :(得分:1)

您需要转义数据。使用prepared queries with PDO,这样您就不必担心这一点。

您目前对SQL injection持开放态度。

至少使用mysql_real_escape_string(),假设您在PHP中使用标准MySQL库。它会处理引号,以及许多其他内容,正确地转义它们,以便将它们插入到您的数据库中。