我有一个可能非常简单的问题,我在 Zend Framework 手册或其他地方找不到令人满意的(主观上看到的)答案......
有很多方法可以将我的 php 变量交给我的 sql 查询,以至于我失去了概述,可能我对一般的引用缺乏一些了解。
准备好的报表
$sql = "SELECT this, that
FROM table
WHERE id = ? AND restriction = ?";
$stmt = $this->_db->query($sql, array($myId, $myValue));
$result = $stmt->fetchAll();
我知道使用这个解决方案我不需要引用任何内容,因为数据库会为我处理这个。
通过 API 查询 Zend_Db_Table 和 _Row 对象
$users = 新用户();
a) $users->fetchRow('userID = ' . $userID);
b) $users->fetchRow('userID = ' . $users->getAdapter()->quote($userID, 'INTEGER'));
c) $users->fetchRow('userID = ?', $userID);
d) $users->fetchRow('userID = ?', $users->getAdapter()->quote($userID, 'INTEGER'));
问题
我知道 a) 不好,因为它根本没有被引用。但是其他版本呢,最好的呢?c) 是否被视为陈述并自动引用,还是在使用 d) 时需要使用?标识符?