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が古くなったときに新しいdbハンドラーに簡単に移行できるようにするためです。これは時期尚早の最適化ではありません。これにより、最初から生活が楽になります。