次の方法の実装に問題があります。
private function query($statement, $params = array(), $name = ""){
try{
$this->prepare($statement, $name);
}catch (Exception $e){
echo 'Exception: ', $e->getMessage(), "\n";
}
try{
return $this->execute($name, $params);
}catch (Exception $e){
echo 'Exception: ', $e->getMessage(), "\n";
}
}
2 番目の try ブロックは、呼び出された別のメソッドから値を返す必要があります。私はそれを次のように呼んでいます:
$resultset = $db->select('SELECT * FROM tabelle WHERE "ID" > $1', array(1));
var_dump($resultset);
NULL を取得します。
try ブロック内の値を var_dump すると、結果が得られます。
private function query($statement, $params = array(), $name = ""){
try{
$this->prepare($statement, $name);
}catch (Exception $e){
echo 'Exception: ', $e->getMessage(), "\n";
}
try{
var_dump($this->execute($name, $params));
}catch (Exception $e){
echo 'Exception: ', $e->getMessage(), "\n";
}
}
array(3) { ["ID"]=> string(1) "2" ["name"]=> string(13) "name1" ["time"]=> string(26) "2012-09-11 20:23:38.854918" } ヌル
私が間違っていることは何ですか?
$db->select と投稿されたメソッドの間の部分を編集します。
public function select($statement, $params = array(), $name){
$this->setQueryType("select"); // just a setter
return $this->query($statement, $params, $name);
}