1

我想问为什么人们使用zend_db风格?

例如

     $select = $d2b->select()
             ->from('users', array('userid','username'))
             ->where('userid=?', 2);

 $result = $d2b->fetchRow($select);
 echo $result->username;

代替

$result = $d2b->fetchAll('SELECT * FROM users WHERE userid = ?', 2);
echo $result[0]->username;

哪一个更好?还是一样,只是为了可维护性。

4

2 回答 2

6

一个原因是使用 Zend_db 风格抽象出了 SQL 的生成;这意味着我们在数据库引擎之间切换可以像换出一个类一样简单,而不必重新编写不兼容的查询。

此外,Zend_db 抽象出了 SQL 查询转义,大大降低了 SQL 注入攻击的风险。它还为不懂 SQL 的人提供数据库查询功能。

于 2012-07-11T20:06:12.327 回答
5

最终结果是相同的,因此这取决于您对可读性和可维护性的个人偏好。

流畅界面样式的一个优点是它可以更轻松地以编程方式构建查询,例如:

$select = $d2b->select()
         ->from('users', array('userid','username'));

if ([some condition]) {
    $select->where('userid = ?', 2);
} else {
    $select->where('userid = ?', 62);
}
于 2012-07-11T20:04:50.007 回答