我想知道是否有某种方法可以将预先配对的语句放入 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 ( ^