dongying6179 2014-06-23 18:44
浏览 171
已采纳

从MySQL数据库获取结果时出错

This is my class for connecting to a database but when I create an instance of that class it gives me this error: Fatal error: Call to undefined method DB::query() in C:\Apache24\htdocs\core\DB.class.php on line 21.

 <?php

class DB {
    protected $db_name = "data_db";
    protected $db_user = "root";
    protected $db_pass = "root";
    protected $db_host = "localhost";

    public function __construct() {
        $db = new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name);
        if ($db->connect_errno) {
            printf("Connection failed: %s
", $db->connect_error);
            exit();
        } else
            return $db;
    }
}

$db = new DB();

$data_row = $db->query("SELECT * FROM `users`");
while($data = $data_row->fetch_assoc())
    echo $data["first_name"] . '<br>';

?>

Fatal error: Call to undefined method DB::query() in C:\Apache24\htdocs\core\DB.class.php on line 21

  • 写回答

1条回答 默认 最新

  • doupo1890 2014-06-23 18:54
    关注

    Constructors don't return custom values, they return instance of the class. To test this use var_dump( $db ); and output will be object(DB) .... Save the connection as property of the object like:

    public function __construct() {
        $this->mysqli = new mysqli($this->db_host, $this->db_user, $this->db_pass, $this->db_name);
    }
    
    $db = new DB();
    $data_row = $db->mysqli->query("SELECT * FROM `users`");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题