当我尝试安装一个包含引号的字符串时,插入查询失败。如何插入带单引号或双引号的字符串?
例如:
$message = "Bob said 'don't forget to call me'";
mysql_query("INSERT INTO someTable (messages) VALUES ('$message')");我认为输入需要过滤,但是我应该使用哪个函数呢?
发布于 2010-06-26 10:30:17
$message = mysql_real_escape_string($message);此函数应应用于您要插入到带引号的查询中的每个变量。没有例外。
它并不是针对с注入的真正保护,而仅仅是一条语法规则。
不过,你也需要一个真正的保护。我已经在最近的回答中详细解释过了:In PHP when submitting strings to the database should I take care of illegal characters using htmlspecialchars() or use a regular expression?
发布于 2010-06-26 11:47:52
一整个小时的问题,没有人提到转义字符串是邪恶的,你应该use prepared statements instead?相当有效的方法来消除SQL injection
https://stackoverflow.com/questions/3122477
复制相似问题