Я посмотрел на многие другие сообщения, похожие на мои проблемы, и реализовал их решения (насколько я могу судить) так, как мог. Однако каждый раз, когда я запускаю этот скрипт, выполняется код в блоке else (даже если введенное имя пользователя – это уже существующее).
Имя таблицы – «Пользователи», а столбец, который я пытаюсь выполнить, – «имя пользователя». Ввод из моей формы был прочитан в $username
и я подтвердил, что он был правильно прочитан с использованием эха . $con
содержит соединение с сервером.
В какой-то момент я также поставил echo $query
(ничего не было напечатано) и echo mysql_num_rows($query)
(ничего не было напечатано).
Вот соответствующий сегмент кода. Понравилось бы несколько советов.
$query = mysql_query("SELECT username FROM Users WHERE username=$username", $con); if (mysql_num_rows($query) != 0) { echo "Username already exists"; } else { ... }
EDIT: По-видимому, я должен был использовать mysqli для своего сервера, и так, как я проверил num_rows для этого, выполнив $ query-> num_rows, поскольку он был свойством объекта. Спасибо за помощь!
измените свой запрос на понравившийся.
$query = mysql_query("SELECT username FROM Users WHERE username='".$username."'");
Попробуй это:
$query = mysql_query("SELECT username FROM Users WHERE username='$username' ")
Не добавляйте $con
к функции mysql_query()
Я думаю, что в коде есть что-то не так. Вы можете удалить $ con, это не обязательно и
Проблема связана с переменной php внутри запроса mysql. Вы должны поставить вокруг него одну цитату. Этот код должен работать нормально
$query = mysql_query("SELECT username FROM Users WHERE username='$username'"); if (mysql_num_rows($query) != 0) { echo "Username already exists"; } else { ... }
Изменить это
$query = mysql_query("SELECT username FROM Users WHERE username=$username", $con);
к
$query = mysql_query("SELECT username FROM Users WHERE username='$username'");
ПОПРОБУЙ ЭТО
mysql_connect('localhost','dbuser','dbpass'); $query = "SELECT username FROM Users WHERE username='".$username."'"; mysql_select_db('dbname'); $result=mysql_query($query); if (mysql_num_rows($query) != 0) { echo "Username already exists"; } else { ... }
Все в порядке, просто одна ошибка. Измените это:
$query = mysql_query("SELECT username FROM Users WHERE username=$username", $con); $query = mysql_query("SELECT Count(*) FROM Users WHERE username=$username, $con"); if (mysql_num_rows($query) != 0) { echo "Username already exists"; } else { ... }
SELECT *
не будет работать, используйте с SELECT COUNT(*)
.
$firstname = $_POST["firstname"]; $lastname = $_POST["lastname"]; $email = $_POST["email"]; $pass = $_POST["password"]; $check_email = mysqli_query($conn, "SELECT Email FROM crud where Email = '$email' "); if(mysqli_num_rows($check_email) > 0){ echo('Email Already exists'); } else{ if ($_SERVER["REQUEST_METHOD"] == "POST") { $result = mysqli_query($conn, "INSERT INTO crud (Firstname, Lastname, Email, Password) VALUES ('$firstname', '$lastname', '$email', '$pass')"); } echo('Record Entered Successfully'); }
Вот что я написал:
$error = false; $sql= "SELECT username FROM users WHERE username = '$username'"; $checkSQL = mysqli_query($db, $checkSQL); if(mysqli_num_rows($checkSQL) != 0) { $error = true; echo '<span class="error">Username taken.</span>'; }
Работает как шарм!
PHP 7 улучшил запрос ………
$sql = mysqli_query($conn, "SELECT * from users WHERE user_uid = '$uid'"); if (mysqli_num_rows($sql) > 0) { echo 'Username taken.'; }