Zend中的quote和quoteInto有什么区别?

时间:2012-08-03 08:18:17

标签: php zend-framework

我无法弄清楚quoteInto与quote的不同之处。

2 个答案:

答案 0 :(得分:6)

quoteInto()用于准备sql查询的数据。 quote()函数仅引用可能终止字符串文字的内容,例如',“,\ 0等。

$sql = 'SELECT * FROM users WHERE enabled = ? AND country = ?';
$sql = $users->getAdapter()->quoteInto($sql, 1);
$sql = $users->getAdapter()->quoteInto($sql, 'UK');

//SELECT * FROM users WHERE enabled = 1 AND country = 'UK'

print $db->quote("%some'stuff%") . "\n"; 
// Output: '%some\'stuff%' 

答案 1 :(得分:0)

我不认为quoteInto()是最好的解决方案,因为它只会转义特殊字符,并在其周围应用引号。逃逸通常有几个问题,例如你必须有规范列表。使用DBMS的字符并维护此列表 - 您如何知道Zend将此DBMS列表100%完美? 在我看来,只有一个真正安全的解决方案 - >使用参数化查询。