Проверка запросов на существование — PHP

#php #mysql #database

#php #mysql #База данных

Вопрос:

Я пытаюсь проверить, существует ли адрес электронной почты в моей базе данных, выполнив проверку запроса.

Я могу нормально подключиться к базе данных.

Однако, несмотря ни на что, даже если электронное письмо существует, оно возвращает «не существует».

 <?php

//----------------------------------------------------------------------------------//
//Setup
require_once('SB_Constants.php');
//----------------------------------------------------------------------------------//


//Connect to the database
//----------------------------------------------------------------------------------//
$connection = mysqli_connect(DATABASE_HOST, SAVE_USERNAME, SAVE_PASSWORD, DATABASE_NAME);

// check the connection was successful
if (mysqli_connect_errno($connection)) {
    header('HTTP/1.0 500 Internal Server Error', true, 500);
    die(FailedToAccessDatabase . ". Failed to connect to Database");
} else {
    echo "Connection Success!";
}


//Query Check
$assessorEmail = mysqli_query($connection, "SELECT email_address FROM assessorID WHERE email_address = 'ryan@ablah.com'");
if (mysqli_num_rows($query_identifier) == 0) {
    die(UnregisteredAssessor . ". Doesn't Exist");
} else {

    // Exists 
    echo "Exists getting ace id.";

    //Get the assessor ID
    $result = mysqli_query($connection, "SELECT ace_id FROM assessorID WHERE email_address = 'ryan@blah.com'");
    echo $result;
}
/* close connection */
mysqli_close($connection);

?>
 

Есть идеи о проблеме? 🙂

Комментарии:

1. Отсутствует «i»: mysql_num_rows

2. Вы смешиваете функции mysql_ * с функциями mysqli_ *

3. $query_identifier никогда не объявляется

4. @colburton Острые глаза!, только что исправлено — однако все еще возникают проблемы

5. Если вы откроете другой инструмент (например, если вы можете использовать phpMyAdmin или инструмент MySQL Workbench) и запустите запрос, получите ли вы результат?

Ответ №1:

Различные ошибки. Исправить:

 $assessorEmail = mysqli_query($connection, "SELECT ace_id,email_address FROM assessorID WHERE email_address = 'ryan@ablah.com'");
if (mysqli_num_rows($assessorEmail) == 0) {
    die(UnregisteredAssessor . ". Doesn't Exist");
} else {

    // Exists 
    echo "Exists getting ace id.";

    //Get the assessor ID
    $result = mysqli_fetch_assoc($assessorEmail);
    echo $result['ace_id'];
}
 

Комментарии:

1. Я прокомментирую это вместо того, чтобы заканчивать. mysqli_num_rows() проверял неопределенную переменную $query_identifier .

2. @colburton Понятия не имею, но вы правы, большое спасибо! 🙂

Ответ №2:

Ваша проблема mysqli_num_rows($query_identifier) заключается в доступе к неопределенной переменной вместо $assessorEmail .

Кроме того, вам нужен только один запрос, если вы просто хотите ace_id :

 $assessorEmail = mysqli_query($connection, "SELECT ace_id FROM assessorID WHERE email_address = 'ryan@ablah.com'");
 

Если mysqli_num_rows($assessorEmail) возвращает строку, значит, электронное письмо существует, и у вас уже есть ace_id

 while(mysqli_fetch_assoc($assessorEmail) = $row) {
  echo $result['ace_id'];
}