Соответствующие имена в базе данных

У меня есть таблица, в которой я хочу соответствовать 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, имена с ' не совпадают, как я могу решить это?

1 ответ

Решение

Поскольку вы уже используете 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()

Обновить

Кроме того, у вас могут быть включены магические кавычки, вы должны отключить их.

Другие вопросы по тегам