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

1つの理由は、Zend_dbスタイルを使用するとSQLの生成が抽象化されることです。つまり、データベースエンジンを切り替えるのは、互換性のないクエリを書き直すのではなく、クラスを交換するのと同じくらい簡単です。

さらに、Zend_dbはSQLクエリのエスケープを抽象化し、SQLインジェクション攻撃のリスクを大幅に削減します。また、SQLを知らない人のためにデータベースクエリ機能を提供します。

于 2012-07-11T20:06:12.327 に答える
5

最終結果は同じなので、読みやすさと保守性に関する個人的な好みに依存します。

流暢なインターフェイススタイルの利点の1つは、プログラムでクエリを簡単に作成できることです。例:

$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 に答える