当我尝试instert包含引号的字符串时,INSERT查询失败.如何插入带单引号或双引号的字符串?
例如:
$message = "Bob said 'don't forget to call me'";
mysql_query("INSERT INTO someTable (messages) VALUES ('$message')");
Run Code Online (Sandbox Code Playgroud)
我认为输入需要过滤,但我应该使用哪个功能?
$message = mysql_real_escape_string($message);
Run Code Online (Sandbox Code Playgroud)
此函数应该应用于要在引号中插入查询的每个变量.没有例外.
它不是真正的保护免受注射,而只是一种语法规则.
虽然你也需要真正的保护.我在最近的回答中详细解释过:在PHP中,当我向数据库提交字符串时,我应该使用htmlspecialchars()处理非法字符还是使用正则表达式?