Proszę, powiedz mi, co zrobiłem źle? A jak lepiej pracować z bazą? Połączenie działa, ale nie widzę informacji z bazy. Dostaję:PHP OOP i połączenie MySQLi = Błąd krytyczny: wywołanie niezdefiniowanej metody mysqli :: arrayQuery()
Fatal error: Call to undefined method mysqli::arrayQuery()
Nie mogę zrozumieć, jak to naprawić, Google też nie pomogło.
<?php
class Proc{
protected $DB;
function __construct(){
$this->DB=new mysqli('localhost', 'user', 'password', 'basename');
$this->DB->query("set names utf8");}
function __destruct(){unset($this->DB);}
function GetAll(){
$sql="SELECT * FROM users";
$result = $this->DB->arrayQuery($sql, SQLITE_ASSOC);
return $result;}
}
$Yo = new Proc();
$users = $Yo->GetAll();
echo "All users: ".count($users);
foreach ($users as $user){
$id = $user["ID"];
$n = $user["Name"];
echo "{$id} - {$n}<br/>";}
?>
Mała poprawka i wszystko działa idealnie! Dziękuje za wszystko!
<?php
class Proc{
protected $DB;
function __construct(){
$this->DB=new PDO("mysql:host=localhost;dbname=basename", user, password);
$this->DB->query("set names utf8");}
function __destruct(){unset($this->DB);}
function GetAll(){
$sql="SELECT * FROM users";
$result = $this->DB->query($sql);
return $result;}
}
$Yo = new Proc();
$users = $Yo->GetAll();
foreach ($users as $user){
$id = $user["ID"];
$n = $user["Name"];
echo "{$id} - {$n}<br/>";}
?>
Zaproszenie do metody niezdefiniowanej mysqli :: arrayQuery() - to znaczy komunikat o błędzie jest CEAR, prawda? – panther
Czy umieścisz tę funkcję 'arrayQuery', jeśli ją masz –
Sprawdzanie http://php.net/manual/en/book.mysqli.php wykaże, że' arrayQuery' nie jest dostępny (klasa mysqli nie ma takiej metody). Również lepiej jest zmienić na PDO –