num_rows не работает в объектно-ориентированном методе

Я новичок в php & MySQL. num_rows не работает в ниже основной пример.
Весь сценарий вдохновлен примером в w3schools.
пример w3schools.

браузер показывает сообщение об ошибке следующим образом.

Примечание: Попытка получить свойство необъекта в C: \ wamp \ www \ test3 \ index.php в строке 17

код

<?php
require 'connect.inc.php';
require 'core.inc.php';

//check username & password is set.

if(isset($_POST['username']) && isset($_POST['psw']))
{
$username = $_POST['username'];
$password = $_POST['psw'];
$pass_md5 = md5($password);
if(!empty($username) && !empty($password))
{
$queryy = "SELECT ID FROM user WHERE email= $username AND password= $pass_md5";
$result = $conn->query($queryy);

echo $result->num_rows; //<---------------NOT WORKING..! -----<<
}
else echo "incorrect username-password combination";
}
?>

<html>
<form action="<?php echo $current_file ?>" method="POST">
User name: <input type="text" name="username">
password: <input type="password" name="psw">
<input type="submit" value="Login"><br>
</form>
<html>

где connect.inc.php имеет несколько простых кодов для подключения к localhost и базе данных. это выглядит следующим образом:

<?php
//this sript connects to DB->mytest.

$servername="localhost";
$username="root";
$password="";
$dbname="mytest";

//create connection
@$conn=new mysqli($servername, $username, $password, $dbname);

//check connection
if($conn->connect_error)
{
die("connection faild");
}
?>

а также, core.inc.php Возвращает текущее местоположение файла. это выглядит следующим образом:

<?php
$current_file = $_SERVER['SCRIPT_NAME'];
?>

пожалуйста помоги..

0

Решение

Проблема в том, что вы не цитируете строки в своем запросе:

$queryy = "SELECT ID FROM user WHERE email= '$username' AND password= '$pass_md5'";

Тем не менее, было бы лучше использовать подготовленный запрос и bind_param вместо замены переменных.

$queryy = "SELECT ID FROM user where email = ? AND password = ?";
$stmt = $conn->prepare($queryy);
$stmt->bind_param("ss", $username, $pass_md5);
$stmt->execute();
$stmt->store_result();
echo $stmt->num_rows;
3

Другие решения

Похоже, ваш $conn неправильно подключен к вашей базе данных или не имеет необходимых разрешений для выполнения запроса. Или ваш запрос недействителен.

Редактировать:
Ваш запрос отсутствует ':

$queryy = "SELECT ID FROM user WHERE email= '$username' AND password= '$pass_md5'"
0

По вопросам рекламы [email protected]