Я только начал использовать подготовленные заявления в этом коде, но у меня возникла проблема. Я использую их, чтобы узнать, существует ли пользователь с определенным адресом электронной почты, но он не будет работать. Вот мой код:В чем проблема с этим кодом с помощью подготовленных операторов?
$mysqli = new mysqli("localhost", "root", "mypass", "mydb");
$uname = $mysqli->real_escape_string($_POST["uname"]);
$email = $mysqli->real_escape_string($_POST["email"]);
$passwd = $mysqli->real_escape_string($_POST["passwd"]);
$stmt1 = $mysqli->prepare("SELECT * FROM users WHERE email=?");
$stmt1->bind_param("s", $email);
$stmt1->execute();
$res1 = $stmt1->get_result();
$i = 0;
while($row1 = $res1->fetch_assoc()) {
$i = $i + 1;
}
if($i != 0) {
die("A user with that email already exists.");
}
я затем, чтобы проверить, если имя пользователя уже используется, используя один и тот же код, только замена из ссылок на электронную почту с uname и коммутационные stmt1 к stmt2. Что случилось с моим кодом здесь?
Не избежать, если вы используете подготовленные заявления .... это одна из вещей, которые готовили заявления сделать для вас –
Если вы используете подготовленные заявления, вы не должны использовать 'real_escape_string'. Подготовленные заявления обрабатывают эту часть для вас. –
«Это не сработает» означает, что у вас нет результатов, и хотя ваш error_reporting установлен правильно, у вас нет сообщения об ошибке, верно? –