【发布时间】:2012-09-04 21:51:12
【问题描述】:
我在执行以下方法时遇到问题:
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";
}
}
第二个 try 块应该从另一个调用的方法返回值。我这样称呼它:
$resultset = $db->select('SELECT * FROM tabelle WHERE "ID" > $1', array(1));
var_dump($resultset);
并得到一个 NULL。
如果我 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" [“时间”]=> 字符串(26)“2012-09-11 20:23:38.854918”} NULL
我做错了什么?
edit$db->select 和posted 方法之间的部分:
public function select($statement, $params = array(), $name){
$this->setQueryType("select"); // just a setter
return $this->query($statement, $params, $name);
}
【问题讨论】:
-
并且在获取此 null 时不会引发异常?
-
这就是全部代码吗?你说你使用 $db->select 正确调用?
-
是的,没有抛出异常。 @LloydMoore 对不起,我忘记了一部分,我会编辑我的问题。
-
我不明白为什么它会转储输出,好像
$this->execute确实返回了一些东西,但try块不会返回该特定值
标签: php class return try-catch