Я хочу проверить ввод пользователя после того, как он нажмет кнопку отправки, если слово существует в базе данных.
Следовательно, у меня есть этот код. Тем не менее, он всегда говорит, что данных не существует, в которых он находит условие ложным.
Что не так с моим кодом ниже?
$input_word = trim($_POST["word"]);
$data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$a = mysqli_query($data_check);
if (mysqli_num_rows($a) == 1)
{
echo "Data exist.";
}
else
{
echo "Data DOES NOT exist";
}
Ваш запрос не удался, потому что вы не передали соединение БД:
$a = mysqli_query($data_check);
Переменная для соединения неизвестна, поэтому вам нужно опираться на:
$a = mysqli_query($connection, $data_check);
и вам, возможно, придется использовать >0
вместо ==1
для тебя num_rows()
так как может быть более одной записи.
Ваш код также открыт для инъекции SQL; используйте подготовленное утверждение.
Используйте PHP Отчет об ошибках а также mysqli_error($connection)
по запросу.
Также убедитесь, что ваше соединение на самом деле mysqli_
и не другой API.
$input_word = trim($_POST["word"]);
$data_check = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$con = mysqli_connect("host",'id','pass','dbname'); // add this connection
$a = mysqli_query($con,$data_check);
if (mysqli_num_rows($a) == 1)
{
echo "Data exist.";
}
else
{
echo "Data DOES NOT exist";
}
Вам необходимо указать соединение в параметре 1. mysqli_query. w3schools .
Лучший способ сделать это.
$dbhost = 'localhost';
$dbuser = 'username';
$dbuser = 'password';
$dbpass = 'dbname';
$dbConn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$query = "SELECT * FROM word_collections WHERE single_word = '$input_word'";
$result = $dbConn->query($query);
if($result->num_rows == 1){
echo "have some records";
}else{
echo "No records";
}