我正在使用Zend Framework 2开发一个应用程序。我使用TableGateway来执行选择、插入、更新和删除查询。
1. 我的问题是如何在执行INSERT、UPDATE和DELETE语句之前打印出精确的SQL查询? 对于SELECT语句,这是我的代码,它对我有效。
$selectedTable = new TableGateway($this->tblName, $this->dbAdapter);
$sql = $selectedTable->getSql();
$select = $sql->select();
if ($trace) {
echo "<br>" . $sql->getSqlstringForSqlObject($select) . "<br>";
exit;
}
else {
$resultSet = $selectedTable->selectWith($select);
unset($selectedTable);
return $resultSet;
}
2. 我使用以下代码获取最后插入的id,已经正常工作。
$selectedTable = new TableGateway($this->tblName, $this->dbAdapter);
$selectedTable->insert($dataArray);
$insertId = $selectedTable->adapter->getDriver()->getConnection()->getLastGeneratedValue();
unset($selectedTable);
return $insertId;
关于UPDATE如何获取最后更新的id?以及DELETE如何获取受影响的行数?因为对于UPDATE和DELETE,此代码不起作用。
有人能建议如何完成这些任务吗?