mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given in … on line 38 ($myrow = mysqli_fetch_array($auth);) [дубликат]

249
30 августа 2017, 17:02

На данный вопрос уже ответили:

  • mysql_fetch_array() expects parameter 1 to be resource (or mysqli_result), boolean given 3 ответа
<?php
        include '../../db/db.php';
        $login = $_POST['login'];
        $password = $_POST['password'];
        if (isset($_POST['login'])) { $login = $_POST['login']; 
        if ($login == '') { unset($login);} }
        if (isset($_POST['password'])) { $password=$_POST['password']; 
        if ($password =='') { unset($password);} }
        if (empty($login) or empty($password)) 
            {
            exit ("Заполните все поля!");
            }

        $auth = (" SELECT ('login','password') FROM 'users' WHERE 
        'login'='$login' and 'password'='$password' ");
        $myrow = mysqli_fetch_array($auth);
        if (empty($myrow['password']))
        {
        //если пользователя с введенным логином не существует
        exit ("Извините, введённый вами login или пароль неверный.");
        }
        else {
        if ($myrow['password']==$password) {  
          $_SESSION['login']=$myrow['login']; 
          $_SESSION['id']=$myrow['id'];
         echo "Вы успешно вошли на сайт! <a href='index.php'>Главная 
         страница</a>";
            }
            else {
            exit ("Извините, введённый вами login или пароль неверный.");
            }
            }   
            ?>

Ошибка mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given in ... on line 38 это вот в этой строке: $myrow = mysqli_fetch_array($auth);

Что сделать, чтобы код работал?

Answer 1

Пользуйтесь

$query = "
";
$result = $connection->query($query);
if (!$result) die($connection->error);
if ($result->num_rows == 0) exit('Ошибка');
//Одна строка
$myrow = $result->fetch_array(MYSQLI_ASSOC);
$test=$myrow['test'];
//Перебор значений
while ($myrow = $result->fetch_array(MYSQLI_ASSOC)) {
    $test=$myrow['test'];
}
Answer 2

Для начала подключиться к базе данных:

$link = mysqli_connect("адрес_сервера_SQL", "my_user", "my_password", "my_db");

Реквизиты наверняка указаны в вашем подключаемом файле include '../../db/db.php';

Затем выполнить, собственно запрос

$result = mysqli_query($link, $auth);

И затем уже читать из него:

 $myrow = mysqli_fetch_array($result);
READ ALSO
PHP, найти подстроку без учета пробелов

PHP, найти подстроку без учета пробелов

Здравствуйте, есть строка (она может меняться), в ней нужно найти подстроку, например XYZ, вопрос заключаетсяв том что XYZ может меняться, в том...

229
Выборка пустых строк Mysql

Выборка пустых строк Mysql

Есть таблица вида:

264
Передача данных из PHP в JSON

Передача данных из PHP в JSON

Добрый вечер! Покажите пожалуйста простой пример использования JSON для передачи например двухмерного массива или несложного объектаСмотрел...

203
Отображение сообщения с почты на сайте через PHP

Отображение сообщения с почты на сайте через PHP

Есть сайт на opencart, есть две почты, с которых отправляются уведомления на почты заказчиковПо мимо всего прочего, эти уведомления видны и в личном...

245