当字符串中存在不匹配的“'”时,从 php 发送 sql 更新查询时,撇号可能会很痛苦。克服这个问题的最佳实践是什么?
谢谢
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']);
这些扩展具有用于创建准备好的查询的内置函数,使您可以毫无问题地使用引号和撇号。
我认为最好的做法是使用准备好的语句,但你也可以使用addslashes($string)
andstripslashes($string)
函数。