如何将包含引号的字符串插入数据库?

Sam*_*Sam 5 php mysql

当我尝试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)

我认为输入需要过滤,但我应该使用哪个功能?

Bil*_*eal 6

请参阅:mysql_real_escape_string

你应该总是逃避的事情由用户提供的任何事情之前,他们去它进入数据库,以防止SQL注入在任何情况下.


You*_*nse 5

$message = mysql_real_escape_string($message);
Run Code Online (Sandbox Code Playgroud)

此函数应该应用于要在引号中插入查询的每个变量.没有例外.
它不是真正的保护免受注射,而只是一种语法规则.

虽然你也需要真正的保护.我在最近的回答中详细解释过:在PHP中,当我向数据库提交字符串时,我应该使用htmlspecialchars()处理非法字符还是使用正则表达式?