使用TableGateway选择ZF2 mysql函数

时间:2013-12-11 21:01:54

标签: php zend-framework2

我正在使用ZF2 TableGateway并希望进行选择,例如where md5(email) = $hash

我已尝试在->select(array('md5(email)' => $hash));的选择中执行此操作,但这不起作用,我找不到列。

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您使用的是Zend \ Db \ TableGateway。

                  use Zend\Db\Adapter\Adapter;
                  use Zend\Db\Sql\Sql;
                  use Zend\Debug\Debug;

$driver =  array('db' => array('driver' => 'Pdo', 'dsn'=>'mysql:dbname=zf2;host=localhost;
             charset=utf8', 'user'=>'root','pass'=>'pass')
        );
$db = new Adapter($driver);
                  $sql = new Sql($db);
                  $select = $sql->select();
                  $select->from('YourTable');

                  $select->where(array('md5(email)' => $hash));
        OR

                  $select->where->equalTo('md5(email)', $hash);

可能有用。未经测试。

答案 1 :(得分:0)

如果您的查询涉及单个表,则使用表网关会更容易。从您的查询下面是解决方案

->select(array('md5(email) = ?' => $hash));

可以工作,这将返回结果集对象以获得结果使用

$resultset->current(); //to get the current row