1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
1

Call to a member function fetch_array() on boolean

21.07.2016, 08:34. Показов 7397. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Переписываю с mysql под mysqli
Так все работает:
PHP
1
2
3
4
5
db::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$result = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $to, $limit");
while ( $row = mysql_fetch_array($result) ) {
$m[] = $row;
$this->news = $m;
А новым методом нет:
PHP
1
2
3
4
5
6
$sql_query='SELECT * FROM news ORDER BY id DESC LIMIT $to, $limit';
$result=$mysqli->query($sql_query);
while ( $row=$result->fetch_array() ) {
$m[] = $row;
$this->news = $m;
}
Вроде бы все по документации сделано.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2016, 08:34
Ответы с готовыми решениями:

Msqli и Call to a member function fetch_array() on boolean
Код: <?php ini_set('display_errors','On'); error_reporting(E_ALL | E_STRICT);...

Uncaught Error: Call to a member function fetch_array() on boolean in
<?php $link = mysqli_connect("host", "username", "password", "bd"); if (!$link) { ...

Fatal error: Call to a member function fetch_array() on a non-object
<?php $mysqli = new mysqli("localhost","krauft","1234","test2"); if (isset($_POST)) { ...

Exception - Call to a member function fetch_assoc() on boolean
Здравствуйте. Я сейчас работаю с базой данных moodle. И я пытаюсь через php файл: 1)...

7
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
21.07.2016, 08:35 2
А где подключение? В 1-ом примере есть, во 2-ом нет.
0
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
21.07.2016, 08:44  [ТС] 3
PHP
1
2
$db = database::getInstance();
$mysqli=$db->getConnection();
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,259
Записей в блоге: 7
21.07.2016, 08:49 4
Лучший ответ Сообщение было отмечено Vassillissk как решение

Решение

Vassillissk, во втором случае у вас кавычки в строке запроса другие -> переменные не вставляются -> ошибка в запросе.
1
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
21.07.2016, 08:52 5
Лучший ответ Сообщение было отмечено Vassillissk как решение

Решение

Да, одинарные ковычки и PHP строка не парсится, а пишется как есть. Но тут реально дыра у вас, вы же ничего не экранируете и не проверяете на число. Я бы на вашем месте, если вы уже решились переписать на mysqli, начал бы сразу переписывание все на PDO, так как работа с биндингами там сделана очень удобно.
1
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
21.07.2016, 08:57  [ТС] 6
Ну ошибки всегда глупые. У меня идет проверка GET
PHP
1
2
3
4
function toInteger($int){
        $int=abs((int)$int);
        return $int;
    }
Этого недостаточно, или говнокод?
0
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
21.07.2016, 09:18 7
Зачем городить велосипеды, если уже все есть?

Правильный путь:
http://php.net/manual/ru/pdo.prepare.php
и еще отличная статья на хабре, хоть и за 2012 год:
https://habrahabr.ru/post/137664/
0
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
21.07.2016, 09:23  [ТС] 8
У меня неделя ушла, что бы разобраться с классом mysqli, я еще не готов к таким переменам (
0
21.07.2016, 09:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2016, 09:23
Помогаю со студенческими работами здесь

Почему возникает ошибка Call to a member function fetch() on boolean ?
Здравствуйте! Подскажите, почему может возникать ошибка Call to a member function fetch() on...

Call to a member function Query()
Вот функция function register($login, $pass, $repass, $email){ $login = clean($login);...

Call to a member function getAll
call to a member function getAll a non object in modules_class on line 52 <?php require_once...

Call to a member function prepare() on a non-object
Собственно ошибка Fatal error: Call to a member function prepare() on a non-object in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru