Php 数据库中的名称匹配
我有一个表,我想在其中匹配Php 数据库中的名称匹配,php,mysql,string,mysql-error-1064,mysql-escape-string,Php,Mysql,String,Mysql Error 1064,Mysql Escape String,我有一个表,我想在其中匹配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($l
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);
问题是,如果我写name
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();
$stmt=$mysqli->prepare('SELECT*
来自用户\朋友\详细信息
其中userId=?和FriendFirstName=?以及FriendLastName=?
和FriendStatusCode=“已验证”和friendId?);
$stmt->bind_参数('issi',$会话['userId',$firstName,$lastName,$fid);
$stmt->execute();
另见:
更新
此外,您可能已经启用了魔引号,您应该。如果您使用
*\u real\u escape\u string
和MySQLi,您必须使用MySQLi\u real\u escape\u string
(注意I)。我不是在询问SQL注入,我希望在我的Name@user1765876这两个(SQL注入和变量中的引号)在这种情况下,双方碰巧共享一个共同点。@user1765876您可能想检查是否启用了btw。这是一个纯粹的SQL问题,如果“在Fname中存在”或“在Fname中存在”,我不会得到结果lname@user1765876如果你连这个答案都没有得到任何结果,那么你肯定启用了魔法引号。这将把'
变成\'
,并导致不匹配。