2014-01-20 2 views
0

надеясь, что кто-то может мне помочь, у меня есть следующая ошибка, посмотрел онлайн и попробовал загрузку вещей, но, похоже, не понял, ошибка:PHP Неустранимая ошибка: вызов неопределенного метода mysqli :: mysqli_fetch_all()

Fatal error: Call to undefined method mysqli::mysqli_fetch_all() in C:\xampp\htdocs\cyberglide\core-class.php on line 38

Heres мой код:

<?php 

class Core { 

function db_connect() { 
    global $db_username; 
    global $db_password; 
    global $db_host; 
    global $db_database; 

    static $conn; 

    $conn = new mysqli($db_host, $db_username, $db_password, $db_database); 

    if ($conn->connect_error) { 
     return '<h1>'."Opps there seems to be a problem!".'</h1>'.'<p>'."Your Config file is not setup correctly.".'</p>'; 
    } 
    return $conn; 
} 

function db_content() { 
    //this requires a get, update and delete sections, before its complete 

    $conn = $this->db_connect(); 

    if(mysqli_connect_errno()){ 
     echo mysqli_connect_error(); 
} 
$query = "SELECT * FROM content"; 

// Escape Query 
$query = $conn->real_escape_string($query); 

// Execute Query 
if($result = $conn->query($query)){ 

     // Cycle through results 
     while($row = $conn->mysqli_fetch_all()){ 
      //echo $row->column; 
      } 
     } 
    } 
} 

$core = new Core(); 

?> 

Я пытаюсь создать функцию db_connect, которую я хочу, чтобы иметь возможность позвонить в любой точке на сайте, который нуждается в соединении с базой данных, я пытаюсь позвонить что функция на функции внутри одного класса, я хочу, чтобы она захватила и отобразила результаты из базы данных аза. Я запускаю PHP 5.4.7, я вызываю базу данных на пустой php-файл, который включает в себя требование включить файл класса, а затем использовать это в настоящий момент $ core-> db_content(); для проверки функции. Я создаю это приложение с нуля, работая из руководств MySQLi (ранее не использовался MySQLi, использовался для обычного запроса MySQL), поэтому, если я что-то делаю неправильно, сообщите мне, спасибо всем.

+0

В какой версии PHP вы работаете? mysqli_fetch_all PHP 5> = 5.3.0 –

+0

Где вы называете 'db_content()'? – SenorAmor

+0

Существование метода не имеет никакого отношения к порядку метода. –

ответ

1

Только $ res Ультра имеет этот метод. Если вы хотите использовать его в цикле while, используйте fetch_assoc(). fetch_all() возвращает ассоциативный массив со всеми данными уже.

while($row = $result->fetch_assoc()){ 

} 
5

mysqli_fetch_all - это метод mysqli_result, а не mysqli.

Так, предположительно это должно быть $result->fetch_all()

Ссылки:

Важно: имейте в виду, mysqli_result::fetch_all возвращает весь набор результатов не строка, как вы предполагаете, в вашем код

4

Есть три проблемы, которые я вижу здесь.

while($row = $conn->mysqli_fetch_all()){ 
  1. Имя метода является fetch_all() при использовании в ООП способом.
  2. fetch_all() следует использовать с $ объекта результата
  3. fetch_all() доступна только при установке драйвера mysqlnd - это часто не так.

Reference

+0

Номер 3 для меня, ура! – Grease

-1

спасибо всем, его прекрасно работать сейчас, я был как в то время как ($ строка = $ conn-> FETCH_ASSOC()) { } до и изменено на то, что я ставлю выше, но dident видеть, что это должно быть $ result вместо $ conn, спасибо, что указали это.

Смежные вопросы