2015-06-04 19 views
6

Hãy cho tôi biết tôi đã làm gì sai? Và làm thế nào để làm việc với cơ sở tốt hơn? Kết nối hoạt động, nhưng tôi không thể xem thông tin từ cơ sở. Tôi chỉ nhận được:OOP PHP và kết nối MySQLi = Lỗi nghiêm trọng: Gọi đến phương thức chưa xác định mysqli :: arrayQuery()

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

Tôi không thể hiểu cách khắc phục, Google cũng không trợ giúp.

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

Sửa một chút và hoàn thành mọi công việc! Cảm ơn tất cả!

<?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

Gọi phương pháp mysqli không xác định :: arrayQuery() - Tôi có nghĩa là thông báo lỗi là Cear, được không? – panther

+0

Bạn có thể đăng hàm này 'arrayQuery' nếu bạn có nó –

+0

Kiểm tra http://php.net/manual/en/book.mysqli.php cho thấy rằng' arrayQuery' không có sẵn (lớp mysqli không có phương thức như vậy). Ngoài ra, có thể tốt hơn là chuyển sang PDO –

Trả lời

1

Bạn đang sử dụng cơ sở dữ liệu nào? SQLite hoặc mysql?

Bởi vì theo PHP DOCS, tôi đoán chức năng arrayQuery có thể được sử dụng chỉ cho cơ sở dữ liệu SQLite

+0

MySQL 5.5.37 và kết nối là "mysqli". Vì vậy, đây không phải là SQLite? – Baaakaaa

+1

Không ... đó là cơ sở dữ liệu mysql bạn đang gặp phải, và vì bạn đã khởi tạo "mysqli", lớp mysqli không có phương thức đó – Abhinav

Các vấn đề liên quan