0

MD5 文字列の DQL を使用してデータベースを検索するにはどうすればよいですか。

私はドクトリンを使用しており、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)://application/libraries/Doctrine/ORM/Query/QueryException.php の 42 行目の Doctrine\ORM\Query

助言がありますか?

4

1 に答える 1

1

MD5 は標準の Doctrine には含まれていません。MD5 拡張機能をインストールする必要があります: https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/Md5.php

于 2012-09-11T06:11:14.300 に答える