我有一个表,我想在其中匹配fname
和lname
我的问题是
$result = $mysqli->query('SELECT * FROM user_friend_detail WHERE userId = "'.$_SESSION["userId"].'" AND FriendFirstName = "'.mysql_real_escape_string($firstName).'" AND FriendLastName = "'.mysql_real_escape_string($lastName).'" AND FriendStatusCode="verified" AND friendId!='.$fid.' ') or die($mysqli->error);
问题是如果我写的名字
Joh'nny,
与'
的名字不匹配,我如何解决这个问题?
最佳答案
因为您已经在使用mysqli,所以最好使用准备好的语句,这样就不必担心是否要进行正确的转义:
$stmt = $mysqli->prepare('SELECT *
FROM user_friend_detail
WHERE userId = ? AND FriendFirstName = ? AND FriendLastName = ?
AND FriendStatusCode="verified" AND friendId <> ?');
$stmt->bind_param('issi', $_SESSION['userId'], $firstName, $lastName, $fid);
$stmt->execute();
另请参见:
mysqli::prepare()
更新
此外,您可能启用了magic quotes,您应该switch it off。
关于php - 数据库中的匹配名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643566/