2015-06-04 13 views
6

Per favore dimmi cosa ho fatto di sbagliato? E come lavorare meglio con la base? La connessione funziona, ma non riesco a vedere le informazioni dalla base. Ho appena ricevuto:Connessione PHP OOP e MySQLi = Errore irreversibile: chiamata al metodo non definito mysqli :: arrayQuery()

Fatal error: Call to undefined method mysqli::arrayQuery()

Non riesco a capire come risolvere il problema, Google non ha aiutato neanche.

<?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/>";} 
?> 

Una piccola correzione e tutto funziona perfettamente! Grazie a tutti!

<?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/>";} 
?> 
+0

Chiama per metodo non definito mysqli :: arrayQuery() - intendo messaggio di errore è Cear, no? – panther

+0

Puoi pubblicare questa funzione 'arrayQuery' se lo hai –

+0

Il controllo http://php.net/manual/en/book.mysqli.php rivela che' arrayQuery' non è disponibile (la classe mysqli non ha un tale metodo). Inoltre, potrebbe essere meglio passare a PDO –

risposta

1

Che database stai utilizzando? SQLite o mysql?

Perché come per la PHP DOCS, credo che la funzione arrayQuery può essere utilizzato solo per i database SQLite

+0

MySQL 5.5.37 e connettersi come "mysqli". Quindi questo non è SQLite? – Baaakaaa

+1

No ... questo è il database mysql che si sta avendo e, poiché si è inizializzato "mysqli", la classe mysqli non ha quel metodo – Abhinav