Php Mysql查询中使用撇号的最佳实践

Php Mysql查询中使用撇号的最佳实践,php,mysql,apostrophe,Php,Mysql,Apostrophe,当字符串中有一个不匹配的“”时,从php发送sql update查询时,撇号可能是一个麻烦。 克服这个问题的最佳做法是什么 谢谢我认为最佳做法是使用准备好的语句,但您也可以使用and函数。我认为最佳做法是使用准备好的语句,但您也可以使用and函数。PDO: $stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username'); $stmt->execute(array(':username' => $_G

当字符串中有一个不匹配的“”时,从php发送sql update查询时,撇号可能是一个麻烦。 克服这个问题的最佳做法是什么


谢谢

我认为最佳做法是使用准备好的语句,但您也可以使用and函数。

我认为最佳做法是使用准备好的语句,但您也可以使用and函数。

PDO:

$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(array(':username' => $_GET['username']));
MySQLi:

$query = $mysqli->prepare('SELECT * FROM users WHERE username = s');
$query->bind_param('s', $_GET['username']);
这些扩展具有用于创建准备好的查询的内置函数,您可以毫无问题地使用引号和撇号。

PDO:

$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(array(':username' => $_GET['username']));
MySQLi:

$query = $mysqli->prepare('SELECT * FROM users WHERE username = s');
$query->bind_param('s', $_GET['username']);

这些扩展具有用于创建准备好的查询的内置函数,您可以毫无问题地使用引号和撇号。

将PDO/MySQLi用于准备好的语句。将PDO/MySQLi用于准备好的语句。使用准备好的语句更安全,因为可以找到绕过这些函数的方法。此解决方案可能更实用因为它不需要安装扩展。使用必须安装的其他扩展比使用这些函数安全得多,这只是为了SQL注入的安全!正如我所说,我认为最好的做法是使用事先准备好的声明,但如果不能,至少可以使用此函数。使用准备好的语句更安全,因为可以找到绕过这些函数的方法。此解决方案可能更实用,因为它不需要安装扩展。使用必须安装的其他扩展比使用这些函数更安全,这只是为了您的SQL注入安全!正如我所说,我认为最好的做法是使用预先准备好的语句,但如果你不能,至少你可以使用这个函数。这听起来不错。不过我还没有试过。+1,因为你的解释如此简单和无痛,我最终决定改用事先准备好的陈述!这听起来不错。不过我还没有试过。+1,因为你的解释如此简单和无痛,我最终决定改用事先准备好的陈述!