首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend secure sql查询?

Zend secure sql查询?
EN

Stack Overflow用户
提问于 2011-02-09 01:28:47
回答 2查看 438关注 0票数 2

我想知道这样的东西在Zend是不是很安全:

代码语言:javascript
复制
$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会自动执行此操作:

代码语言:javascript
复制
$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);

但我不喜欢这种工作方式,只是编写查询对我来说要快得多。那么,我应该手动转义,还是这是为我完成的?做这件事最简单的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-09 02:09:43

如果你不想使用Zend_Db_Select,你可以这样做:

代码语言:javascript
复制
$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

票数 3
EN

Stack Overflow用户

发布于 2011-02-09 01:31:51

Zend不能转义您的变量,因为它永远看不到它。您的变量将被追加到一个字符串中,$db->查询方法可以看到整个字符串。

我不认为query()方法做任何清理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4936223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档