如何使用Zend_Db引用列名?

fav*_*avo 6 php mysql zend-framework zend-db-table

key在MySQL表中用作列名.

由于这是保留的,因此需要正确转义才能在查询中使用:

… WHERE `key` = 'test'
Run Code Online (Sandbox Code Playgroud)

手动这没问题,但我正在使用Zend Framework并希望它能正确处理转义,如下所示:

$table = new Application_Model_ATable();
$table->fetchRow ( $table->select()->where('key = ?','test') );
Run Code Online (Sandbox Code Playgroud)

所以问题是:

如何使用Zend_Db_Table引用/转义列名?

小智 5

避免使用Zend_Db类进行MySQL注入

那家伙实际上在这里解释了这一点,但是生病了,只是迅速把报价单拿出来了。

该表达的任何其他部分需要用引号引起来或定界,这是您的责任。例如,如果您将任何PHP变量插值到表达式中,则安全是您的责任。如果您具有作为SQL关键字的列名,则需要使用quoteIdentifier()自行分隔它们。例:

$select->where($db->quoteIdentifier('order').'=?', $myVariable)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!!