我想问为什么人们使用zend_db样式?
e.g。
$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;
哪一个更好?或者它是一样的,只是为了可维护性。
答案 0 :(得分:6)
一个原因是使用Zend_db样式抽象出SQL的生成;这意味着我们在数据库引擎之间切换可以像交换类一样简单,而不必重新编写不兼容的查询。
此外,Zend_db抽象出SQL查询转义,大大降低了SQL注入攻击的风险。它还为那些不了解SQL的人提供数据库查询功能。
答案 1 :(得分:5)
最终结果是一样的,所以这取决于您对可读性和可维护性的个人偏好。
流畅的界面风格的一个优点是它可以更容易地以编程方式构建查询,例如:
$select = $d2b->select()
->from('users', array('userid','username'));
if ([some condition]) {
$select->where('userid = ?', 2);
} else {
$select->where('userid = ?', 62);
}