Я пытаюсь сделать регистрационную форму для моего сайта заданий, он должен проверить, указан ли указанный адрес электронной почты в базе данных, и если он не вставляет информацию, а затем возвращает идентификатор клиента , Если он находится внутри базы данных, он должен вернуть идентификатор клиента как «существует», который устанавливает сообщение об ошибке переднего конца. Проблема в том, что кажется, что вставлять информацию, прежде чем она проверяет, существует ли она или нет, и поэтому каждая новая запись возвращает «существует» вместо идентификатора пользователей. Мой PHP-код приведен ниже.PHP: запрос Myqli в запросе Mysqli
<?php
$regemail = $_POST['regemail'];
$regfirst = $_POST['regfirst'];
$reglast = $_POST['reglast'];
$regcontact = $_POST['regcontact'];
$regline1 = $_POST['regline1'];
$regline2 = $_POST['regline2'];
$regline3 = $_POST['regline3'];
$regcity = $_POST['regcity'];
$regcounty = $_POST['regcounty'];
$regpost = $_POST['regpost'];
$regpass = $_POST['regpass'];
$customernumber = "";
//Open a new connection to the MySQL server
$mysqli = new mysqli('127.0.0.1','root','','u221062567_esl');
$results = $mysqli->query("SELECT * FROM customers WHERE `Email Address` = '$regemail'");
if($results ->num_rows > 0){
$customernumber = "exists";
}
else{
$regpass = md5($regpass);
$insertrow = $mysqli->query("INSERT INTO customers(`Email Address`, Password, `First Name`, `Last Name`, `Contact Number`, `Address Line 1`, `Address Line 2`, `Address Line 3`, `City/Town`, County, `Post Code`)VALUES('$regemail', '$regpass', '$regfirst', '$reglast', '$regcontact', '$regline1', '$regline2', '$regline3', '$regcity', '$regcounty', '$regpost');");
if($insertrow){
$results2 = $mysqli->query("SELECT * FROM customers WHERE `Email Address` = '$regemail'");
while($row2 = $results2->fetch_array()) {
$customernumber = $row2["Customer ID"];
}
}
else{
}
}
print json_encode($customernumber);
//Output any connection error
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
// close connection
$mysqli->close();
?>
Пожалуйста, помогите, поскольку я изо всех сил пытаюсь понять, почему его запуск скрипта происходит некорректно. Большое спасибо.
Try фиксируя опечатку здесь: '$ Результаты -> num_rows' –
На всякий случай вы не знаете, этот код *** очень опасен ***. Использование MySQLi не магически предотвращает SQL-инъекцию. Вам нужно использовать подготовленные заявления. Do ** не ** добавлять (пользовательские) переменные в ваши SQL-запросы. –
* ... плюс, * MD5 может быть началом конца вашего сайта. * Shocking! * –