我如何在Zend Framework中找到用于insert()的sql查询语句,就像它对db table select所做的一样。 $ select-> __ toString()。
尝试这个对我有用的方法:
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->getProfiler()->setEnabled(true);
$profiler = $db->getProfiler();
$lastID = ($this->insert($data));
$query = $profiler->getLastQueryProfile();
$params = $query->getQueryParams();
$querystr = $query->getQuery();
foreach ($params as $par) {
$sqlQuery = preg_replace('/\\?/', "'" . $par . "'", $querystr, 1);
}
echo $sqlQuery;
由于它是立即执行的,因此您无法提取它,但是代码存在于Zend_Db_Adapter_Abstract::insert()
中,并且可能在某些适配器中被覆盖。