sql查询具有特殊字符的列

时间:2013-12-23 13:43:00

标签: mysql

我的查询就像

$insert_query = "insert into post (post_title) values ('$post_title')";

如果我的post_title = Ronald的生物数据,由于我的post_title中的特殊字符,我将无法插入元组。

该如何解决这个问题?提前谢谢!

2 个答案:

答案 0 :(得分:3)

使用准备好的语句在查询中自动转义参数

$stmt = $dbh->prepare("insert into post (post_title) values (?)";
$stmt->bindParam(1, $post_title);
$stmt->execute();

答案 1 :(得分:0)

考虑使用$mysqli->real_escape_string(String)功能。

$post_title = $mysqli->real_escape_string($post_title);
$insert_query = "insert into post (post_title) values ('$post_title')";

有关详细信息,请参阅here

请注意,在SQL字符串中使用变量始终会因SQL Injection攻击而发出潜在漏洞。参见例如this post替代方案。