0

如何从 db 类中访问 PDO 的 execute() 方法?下面是我的类和方法的片段:

class db extends PDO {
        public $memcache;

        function execute($params='') {
            try {$foo=parent::execute($params);}
            catch (PDOException $e) {echo $e->getMessage();}
            return $foo;
        }

        function __construct($db='server_en',$host='localhost',$uz='root',$pw='') {
            try {
                parent::__construct("mysql:dbname=$db;host=$host",$uz,$pw);
                parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
            }
            catch (PDOException $e) {echo $e->getMessage();}
            $this->memcache=new Memcache;
            $this->memcache->connect('127.0.0.1', 11211) or die('Could not connect to Memcache server');
        }
    }

我尝试执行以下代码:

var_dump($db->execute('INSERT INTO `foo`(`bar`) VALUES (0)'));

并得到以下错误:Fatal error: Call to undefined method PDO::execute() in ...

谁能提供一个简单的例子来说明如何解决这个问题?我对 PDO 和类都相当缺乏经验,所以答案越简单越好。

PS 我复制一些PDO 方法的原因是当 PDO 过时时更容易迁移到新的数据库处理程序。这不是过早的优化;这从一开始就让生活更轻松。

4

2 回答 2

2

您只能调用::execute()PDOStatement,而不是 PDO 本身。

于 2012-11-10T15:10:02.740 回答
2

PDO没有execute方法。它被称为execPDOStatement确实有一个execute方法,但是你需要先创建这样一个对象。

于 2012-11-10T15:09:54.720 回答