0

我想知道是否有某种方法可以将预先配对的语句放入 Zend 数据库类,并使用它而不是使用->select(), ->from(), ->where()。我已经尝试过以下查询,->query()但没有成功。我只问因为即使在 zend 文档中我发现的所有参考资料也只针对 mysqli。我发现 DB 类对于更复杂的查询非常烦人(即使这样也不是那么复杂)。

我有这个查询

SELECT 
org.orgid, 
org.roleid, 
users.userid, 
users.email, 
users.firstname, 
users.lastname, 
users.contact, 
users.state, 
users.ts, 
users.alternate_delivery_email, 
users.unbound, 
users.blocked 
FROM my_mapping AS org 
INNER JOIN my_users AS users ON org.userid = users.userid
WHERE (org.orgid = 'generated-id')
AND (org.roleid::text LIKE 'partner-%');

我一直在尝试使其符合匹配的 zend DB 版本

$select = $db->select()
        ->from(array('org' => 'my_mapping'),
            array(
                'orgid' => 'org.orgid',
                'roleid' =>'org.roleid',
                'userid' =>'users.userid',
                'email' =>'users.email',
                'firstname' =>'users.firstname',
                'lastname' =>'users.lastname',
                'contact' =>'users.contact',
                'state' =>'users.state',
                'ts' =>'users.ts',
                'alternate_delivery_email' =>'users.alternate_delivery_email',
                'unbound' =>'users.unbound',
                'blocked' =>'users.blocked'
            ))
        ->join(array('my_users' => 'users'),'org.userid = users.userid',array())
        ->where('org.orgid = ?',$mspID)
        ->where('org.roleid::text LIKE ?', 'partner-%');  

这给我带来的只是问题。无论我尝试以哪种方式将其更改为工作。然而,进入终端并使用直接查询工作正常,我得到了结果和其他一切。因此,我开始着手查看是否可以找到一种方法来使用传递给 Zend DB 类的确切查询,这样我就可以像处理输出一样处理实际与 Zend DB 类一起使用的查询。但是我在那个庄园中找到的所有参考资料都是特定于 mysql 或 mysqli 的,所以我不确定它是否会起作用,如果它会起作用,我该如何将它们串在一起?

另外值得一提的是“org.roleid”是一个“枚举”,因此::text,roleid 和 userid 也是“uuid”。

我得到的错误是:

Warning: PDO::quote() expects parameter 1 to be string, object given in ........ on line ...
SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at end of input LINE 1: SELECT "my_users".* FROM "my_users" WHERE ( ^
4

1 回答 1

0

您需要使用 Zend_Db_Statement 在 Zend 框架中执行准备好的语句 - http://framework.zend.com/manual/1.12/en/zend.db.statement.html

此外,这里是另一个讨论相同问题的 stackoverflow 线程 - How to useprepared statements in Zend Framework

于 2012-10-10T06:10:35.490 回答