繁体   English   中英

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

[英]How to insert a string that contains quote marks into a database?

当我尝试instert包含引号的字符串时,INSERT查询失败。 如何插入带单引号或双引号的字符串?

例如:

$message = "Bob said 'don't forget to call me'";

mysql_query("INSERT INTO someTable (messages) VALUES ('$message')");

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

请参阅: mysql_real_escape_string

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

$message = mysql_real_escape_string($message);

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

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

整整一个小时的问题并没有人提到逃避字符串是邪恶的,你应该使用预备语句代替? 消除SQL注入非常有效的方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM