我想知道这样的东西在Zend是不是很安全:
$db = Zend_Registry::get('db');
$query = "SELECT * FROM tags t JOIN posts_tags pt ON pt.tag_id = t.tag_id where pt.post_id = " . $postid;
$select = $db->query();我不会在这里检查$postid的内容。
当您进行如下查询时,Zend会自动执行此操作:
$db = Zend_Registry::get('db');
$select = $db->select();
$select->from(array('p' => 'posts'))
->join(array('u' => 'users'), 'u.user_id = p.post_userid')
->where('p.post_id = ?', $postid);但我不喜欢这种工作方式,只是编写查询对我来说要快得多。那么,我应该手动转义,还是这是为我完成的?做这件事最简单的方法是什么?
发布于 2011-02-09 02:09:43
如果你不想使用Zend_Db_Select,你可以这样做:
$select = $db->query("SELECT * FROM tags t JOIN posts_tags pt ON pt.tag_id = t.tag_id where pt.post_id = ?", array($postid));其中第二个参数是要放入占位符的值的数组。请参阅:http://framework.zend.com/manual/en/zend.db.statement.html
发布于 2011-02-09 01:31:51
Zend不能转义您的变量,因为它永远看不到它。您的变量将被追加到一个字符串中,$db->查询方法可以看到整个字符串。
我不认为query()方法做任何清理。
https://stackoverflow.com/questions/4936223
复制相似问题