#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'];
}