【发布时间】:2013-01-31 03:57:48
【问题描述】:
这是一个简单的问题,但我环顾四周并找不到答案。 如何从 ZF2 中的更新/插入 SQL 查询中提取受影响的行数?
以下代码对我来说运行良好(它确实会更新),但我想执行正确的错误检查:
public function updateSomeField($id, $some_field){
$data = array(
'some_field' => $some_field
);
$sql = new Sql($this->dbAdapter);
$update = $sql->update();
$update->table('Table1');
$update->set($data);
$update->where(array('id' => $id));
$statement = $sql->prepareStatementForSqlObject($update);
// need help with the code below...
// got this from here:
// http://stackoverflow.com/questions/11491249/zend-framework-db-update-result
$result = 0;
try {
$result = $statement->execute(); // works fine
} catch (\Exception $e) {
die('Error: ' . $e->getMessage());
}
if (empty($result)) { // not sure if this is applicable??
die('Zero rows affected');
}
return $result; // ideally, I'd like to return $numRows
}
目前,成功时,$result 是一个对象。我试图对它进行 vardump,但它没有显示值。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
$result希望应该是Result类型。在这种情况下,这应该可以帮助您:github.com/zendframework/zf2/blob/master/library/Zend/Db/… - 如果没有,恐怕我无法帮助您 -
是的,就是这样。感谢您的链接。然后可以应用 $affectedRows = $result->getAffectedRows();
标签: sql insert zend-framework2 insert-update error-checking