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


How to ignore or detect a symbol in a variable?

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

现在我今天有一个图像,它的名称是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库。它负责处理引号,以及其他许多事情,正确转义它们,以便将它们插入到数据库中。