Zend DB Framework检查查询是否有更新

19 zend-framework zend-db

所以你可以使用这样的东西:

$query = $db->select();
$query->from('pages', array('url'));
echo $query->__toString();
Run Code Online (Sandbox Code Playgroud)

检查Zend Db Framework将用于该SELECT查询的sql.是否有一种等效的方法来查看SQL以进行更新?

$data = array(
   'content'      => stripslashes(htmlspecialchars_decode($content))
);      
$n = $db->update('pages', $data, "url = '".$content."'");
??
Run Code Online (Sandbox Code Playgroud)

Bil*_*win 31

使用Zend_Db_Profiler捕获和报告SQL语句:

$db->getProfiler()->setEnabled(true);
$db->update( ... );
print $db->getProfiler()->getLastQueryProfile()->getQuery();
print_r($db->getProfiler()->getLastQueryProfile()->getQueryParams());
$db->getProfiler()->setEnabled(false);
Run Code Online (Sandbox Code Playgroud)

如果您不需要,请记得关闭探查器!我和一个认为他有内存泄漏的人交谈过,但是对于他运行的数百万个SQL查询中的每一个,实例化了一些PHP对象.

PS:您应该quoteInto()在该查询中使用:

$n = $db->update('pages', $data, $db->quoteInto("url = ?", $content));
Run Code Online (Sandbox Code Playgroud)