如何使用DQL在数据库中搜索MD5字符串。
我正在使用条令,并希望在DQL中编写以下查询。
SELECT * FROM club_members WHERE md5( CONCAT('secret_key',id)) = '8e801b9cd9b38c142472d5fc5238f538'
我试过
$dql = "SELECT c FROM modelsClub_members c WHERE md5( CONCAT('".$secret_key."',c.id)) = '8e801b9cd9b38c142472d5fc5238f538'";
但是得到一个致命的错误
致命错误:未捕获异常"Doctrine\ORM\Query\QueryException",消息为"[语法错误]第0行,第52列:错误:应为已知函数,在//application/librarys/Doctrine/OM/Query/QQueryException.php中获得"md5":42堆栈跟踪:#0//applications/librarys/Doctrine/OM/Query/Passer.php//application/librarys/Doctrine/OM/Query/Passer.php(2311):Doctrine\ORM\Query/Passer->FunctionDeclaration
有什么建议吗?
MD5未包含在标准Doctrine中,您需要安装MD5扩展:https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/Md5.php