如何用 Zend_Db 引用列名?
我使用 key
作为 MySQL 表中的列名。
由于这是保留的,因此需要正确转义才能在查询中使用:
… WHERE `key` = 'test'
手动这没有问题,但我正在使用 Zend Framework 并且希望它正确处理转义,如下所示:
$table = new Application_Model_ATable();
$table->fetchRow ( $table->select()->where('key = ?','test') );
所以问题是:
如何使用 Zend_Db_Table 引用/转义列名?
I am using key
as a column name in a MySQL table.
Since this is reserved, it needs to be escaped properly to be used in a query:
… WHERE `key` = 'test'
Manually this is no problem, but I am using the Zend Framework and want to have it handle the escape correctly, like this:
$table = new Application_Model_ATable();
$table->fetchRow ( $table->select()->where('key = ?','test') );
So the question is:
How to quote/escape column names with Zend_Db_Table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
避免使用 Zend_Db 类进行 MySQL 注入
这个人在这里解释了这一点事实上,但我只是很快地拿出报价......
希望这有帮助!
avoiding MySQL injections with the Zend_Db class
The guy explains it here actually but ill just pull out the quote quickly...
Hope this helps!!
尝试类似的东西:
try something like:
使用大写字母时必须引用列名称。当您计划将来切换数据库适配器时,使用 $db->quoteIdentifier($columnName) 引用这些名称非常有用。
One must quote column names when uppercase letters have been used. It is usefull to quote those names with $db->quoteIdentifier($columnName) when you plan to switch databese adapter in the future.