php – PDO连接数据库问题

我需要知道我写的PDO扩展是否在语法和语义上都有效.我一直在var_dumping()我的连接变量,当变量被传递给构造函数(具有正确的值)时,我无法从数据库中实际获取任何内容.

我已经在PHP手册上研究过PDO类,从我发现的我正在使用的类几乎与维基页面的示例部分中给出的扩展类相同.

这是我的代码

class DBConnector extends PDO
    {
        private $host;
        private $username;
        private $password;
        private $db;
        private $dns;

        public function __construct($host,$username,$password,$db)
        {
            $this->host = $host;
            $this->username = $username;
            $this->password = $password;
            $this->db = $db;

            $this->dns = "MysqL:dbname=".$this->db.";host=".$host;
            $connection = parent::__construct($this->dns,$this->username,$this->password);

        }
    }

这是一个测试查询,返回一个数组,其中没有任何内容.数据库中有数据,所以显然有些不正确.

function testQuery()
{
    global $connection;

    $query = "
        SELECT * FROM users
    ";

    $stmt = $connection->prepare($query);

    $result = $stmt->fetchAll();


}

难道我做错了什么?

试试这个:
class DBConnector extends PDO
{
  private $connection;
  private $host;
  private $username;
  private $password;
  private $db;
  private $dns;

  public function __construct($host,$db)
  {
      $this->host = $host;
      $this->username = $username;
      $this->password = $password;
      $this->db = $db;
      $this->dns = "MysqL:dbname=".$this->db.";host=".$host;
      $this->connection = parent::__construct($this->dns,$this->password);
      $this->setAttribute (PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  }

  public function testQuery()
  {
      $query = "SELECT * FROM a";
      $stmt = $this->prepare($query);
      if($stmt->execute()){
          return $stmt->fetchAll();
      }
      return array();
  }
}

$tg = new DBConnector('localhost','root','','test');
$t = $tg->testQuery();
print_r($t);

$connection是DBConnector :: __构造的本地,我没有看到任何全局.所以它不会存在于你的testQuery函数中.通过将您的函数移动到类,并创建一个连接属性,它很容易使用它.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...