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