PHP和SQL解析单引号

时间:2015-04-27 15:15:43

标签: php sql escaping quotes

我在这里做了一些搜索,但没找到我要找的东西。

我有一个填写的表单,在提交后将其添加到SQL数据库(使用PHP)。但是,如果有人放入撇号或单引号,它会爆炸......我需要能够解析每个文本字段以检查单引号以逃避它们或找到其他方式使其工作。这是我的SQL语句......如果它有帮助。

$query = "INSERT INTO workshopinfo (Year, Presentername, email, bio, arrival, title, description, costyn, matcost, schedlimit, additionalinfo, typeofws, verified)" .
"VALUES ('$year', '$presentername', '$email', '$bio', '$arrival', '$title', '$description', '$costyn', '$matcost', '$schedlimit', '$additionalinfo', '$typeofws', '$verified')";

当然,单引号会炸毁它,双引号......它每次都会失败。这可能是一个简单的解决方案。

2 个答案:

答案 0 :(得分:0)

我可能在发布后发现了它。 php functon addslashes()适用于这种情况。

答案 1 :(得分:0)

您可以将PDO与预准备语句一起使用来处理SQL请求中的引号:

$req = $bdd->prepare("INSERT INTO yourTable (a, b, c) VALUES (:a, :myb, :c)");
$req->bindParam("a", $name, PDO::PARAM_STR); // string
$req->bindParam("myb", $title, PDO::PARAM_STR); // string 
$req->bindParam("c", $identifier, PDO::PARAM_INT); // integer
$req->execute();

通过这种方式,您可以避免所有SQL注入。

文档:http://php.net/manual/en/book.pdo.php