0

如何使用 DQL 在我的数据库中搜索 MD5 字符串。

我正在使用学说并想在 DQL 中编写以下查询。

SELECT * FROM club_members WHERE md5( CONCAT('secret_key',id)) = '8e801b9cd9b38c142472d5fc5238f538'

我试过

$dql = "SELECT c FROM models\Club_members c WHERE md5( CONCAT('".$secret_key."',c.id)) = '8e801b9cd9b38c142472d5fc5238f538'";

但得到一个致命错误

致命错误:未捕获的异常 'Doctrine\ORM\Query\QueryException' 带有消息 '[Syntax Error] line 0, col 52: Error: Expected known function, got 'md5'' in //application/libraries/Doctrine/ORM/Query /QueryException.php:42 堆栈跟踪:#0 //application/libraries/Doctrine/ORM/Query/Parser.php(396): Doctrine\ORM\Query\QueryException::syntaxError('line 0, col 52:.. .') #1 //application/libraries/Doctrine/ORM/Query/Parser.php(2778): Doctrine\ORM\Query\Parser->syntaxError('known function', Array) #2 //application/libraries/ Doctrine/ORM/Query/Parser.php(2311): Doctrine\ORM\Query\Parser->FunctionDeclaration() #3 //application/libraries/Doctrine/ORM/Query/Parser.php(2279): Doctrine\ORM\ Query\Parser->ArithmeticPrimary() #4 //application/libraries/Doctrine/ORM/Query/Parser.php(2247):第 42 行 //application/libraries/Doctrine/ORM/Query/QueryException.php 中的 Doctrine\ORM\Query

有什么建议么?

4

1 回答 1

1

标准Doctrine不包含MD5,需要安装MD5扩展:https ://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/Md5.php

于 2012-09-11T06:11:14.300 回答