【发布时间】:2012-07-27 08:50:02
【问题描述】:
我以 OOP 方式使用 mysqli 准备好的语句。一切都按预期工作,但我似乎找不到任何关于如何检测然后在 while 循环期间抛出异常的文档。这就是我的代码目前的状态,并且运行良好。
$rslt=array();
$data=array();
$stmt->bind_result($rslt['col1'], $rslt['col2'], $rslt['col3'], $rslt['col4']);
while($stmt->fetch()){
$data[]=$rslt;
}
但是它不包含抛出异常的方法。这就是我在类似脚本中抛出异常的方式,该脚本限制为 1 个结果(因此我不需要在此示例中循环它们)。
$rslt=array();
$data=array();
$stmt->bind_result($rslt['col1'], $rslt['col2'], $rslt['col3'], $rslt['col4']);
if(!$stmt->fetch()){
throw new Exception('Failed to fetch results', 1);
}
$data[]=$rslt;
我几乎正在尝试执行以下代码中的操作,但它会引发以下错误:-
"解析错误:语法错误,第 95 行的 xxx/xxx/includes/_xxxClass.php 中出现意外的 T_THROW
while($stmt->fetch()){
$data[]=$rslt or throw new Exception('Failed to fetch results', 1);
}
我正在寻找一种方法来查看获取结果是否有错误,然后在我的 while 循环中抛出异常。
提前致谢!
【问题讨论】:
-
不起作用到底是什么意思?
-
你指的是代码块#3吗?我收到一个 PHP 错误,告诉我我所做的包含无效的语法。这应该是正确的吗?
-
好的,等一下,我再运行一次。谢谢。
-
这就是我得到的“解析错误:语法错误,第 95 行 xxx/xxx/includes/_xxxClass.php 中的意外 T_THROW”。第 95 行包含此代码“$data[]=$rslt or throw new Exception('Failed to fetch results', 1);”。
标签: php mysql oop mysqli prepared-statement