Я пытаюсь создать сценарий php, в котором вы указываете свой адрес электронной почты в веб-форме. Если адрес электронной почты не существует в mysql db, должна активироваться функция register (). Иначе функция login (). Теперь, независимо от того, какой адрес электронной почты я ввожу, будь то, который существует в БД или нет, я всегда получаю срабатывание register (). Почему это так?
Вот базовый c код. Я не дал коды regsiter () или login (), так как они не имеют значения на данный момент.
<code>if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(!isset($_POST['email_account']) || !isset($_POST['email_service']))
{
$email_error = "<font color='red'>Input Email Address!</color>";
}
else
{
echo "Line 13 triggered<br>"; //DELETE THIS
$conn = mysqli_connect("localhost","root","","test");
if($conn === false)
{
die("ERROR: Connection Error!. " . mysqli_connect_error());
}
else
{
echo "Line 24 triggered<br>"; //DELETE THIS
//Set Parameters.
$email = trim($_POST["email_account"]) . '@' . trim($_POST["email_service"]);
echo "line 27 triggered: $email<br>";
$sql_query = "SELECT COUNT(personal_email) FROM users WHERE personal_email = ?";
$stmt = mysqli_prepare($conn,$sql_query);
if($stmt == false)
{
// just for debugging for now:
die("<pre>Prepare failed:\n".mysqli_error($conn)."\n$sql_query
");} else {echo" Строка 38 запущена
"; // УДАЛЯЕМ ЭТО mysqli_stmt_bind_param ($ stmt, 's', $ email); if (! mysqli_stmt_execute ($ stmt)) {echo "Строка 43 запущена
"; // УДАЛИТЬ ЭТО // Закрыть соединение. mysqli_close ($ conn); d ie ( "Не удалось mysqli_stmt_execute! Пожалуйста, попробуйте позже!");} Echo "Строка 50 запущена
"; // УДАЛИТЬ ЭТО // // if ($ sql_query == 1) if (mysqli_stmt_num_rows ($ stmt) == 1) { echo "Строка 57 сработала: функция login () сработает!
"; // УДАЛИТЬ ЭТО $ _SESSION ['session_type'] = 'login'; login ();} else {echo "Строка 64 сработала: функция register ( ) сработает!
"; // УДАЛИТЬ ЭТУ $ _SESSION ['session_type'] = 'register'; register ();}}}}}
Я получаю повторение следующего, как вы видите в звездочках:
- Линия 13 сработала
- Линия 24 сработала
- Линия 27 сработала: realemail@gmail.com
- Линия 38 сработала
- Линия 53 сработало
- Сработала строка 64: сработает регистр функций (*)!
Если возможно использовать как SQL COUNT, так и php 's mysqli_stmt_num_rows($stmt)
, тогда кто-то любезно покажет мне, как это сделать. Но если иначе, то любезно покажите мне 2 примера. Один с Sql COUNT и один с php s mysqli_stmt_num_rows($stmt)
.
ПРИМЕЧАНИЕ. На самом деле я хочу научиться считать строки, используя Sql COUNT. Если COUNT = 0, то зарегистрируйтесь (). Иначе, если COUNT = 1, то login (). Здесь мы рассчитываем на наличие адреса электронной почты в базе данных mysql.