PHP面向对象编程和MySQLi连接 = 致命错误:调用未定义的方法mysqli :: arrayQuery ()

6
请告诉我我做错了什么?如何更好地使用base进行工作?连接已经建立,但是我无法从数据库中获取信息。我只能看到以下内容:
致命错误:调用未定义的方法mysqli::arrayQuery()
我不明白如何解决这个问题,谷歌也没有帮助。
<?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/>";}
?>

一点小修补就可以完美运行!感谢大家!
<?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/>";}
?>

未定义的方法mysqli::arrayQuery()调用 - 我的意思是错误信息很清楚,不是吗? - pavel
如果您有arrayQuery函数,您能否发布它? - Narendrasingh Sisodia
查看http://php.net/manual/zh/book.mysqli.php,发现`arrayQuery`不可用(mysqli类没有这种方法)。此外,最好切换到PDO。 - Alex Tartan
1个回答

1

你使用的是哪种数据库?SQLite还是mysql

因为根据PHP DOCS,我猜想函数arrayQuery只能用于SQLite数据库。


MySQL 5.5.37,以“mysqli”的形式连接。那这不是SQLite吗? - Baaakaaa
1
不是的...那是你正在使用的MySQL数据库,而且由于你已经初始化了“mysqli”,所以mysqli类没有那个方法。 - Abhinav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接