2012-02-15 7 views
0

大きな文字列をmysqlDBの列のフィールドと照合する必要があります。Mysql: 'rlike'の近くで条件が予想されるコンテキストで指定された非ブール型の式

%ERROR-kkl_ub {} :(YAMiosから):宛先(name = sdasdays.s0sda.rindasdth.sbo98.sbssdao_sad)は登録されていません。

私はこの文字列を$ signautreという変数に渡します。

と、このmysqlコマンドに

$query = "select id, name, status "."from bucket "."where name rlike '$signature'"; 
    &execQuery($query); 

を使用しています、私はエラーを取得:FATAL ERROR:操作はExecQueryメソッドを失敗した() - ExecQueryメソッドでエラーが発生しました。 'ブール型'の近くに条件があると予想されるコンテキストで指定された非ブール型の式

"rlike"を使って簡単なマッチングもできません。 このコマンドでも、同じ致命的なエラーでエラーが発生します。コメント欄にご説明によると

$query = "select id, name, status "."from bucket "."where name rlike '^n'"; 

助けが必要...

+0

なぜ 'rlike'が必要ですか? "私は大きな文字列に一致する必要があります"で "match"という単語を定義してください。 – zerkms

+0

私のdbの 'name'カラムには、上記のような大きな文字列があります。私は私の顧客によってそのようなパターンが与えられ、私は列 'name'の値と一致させ、idおよびstatusのような他のフィールドから対応するデータを抽出する必要があります。 rlikeとregexの両方とも、私に同じエラーを与えてください。 私はこれらをしていない他の方法がありますか? – shreyasGowda

+0

明らかにパターンが間違っています – zerkms

答えて

0

あなただけ=必要があります。この場合、mysqlのチェックで

$query = "select id, name, status from bucket where name = '" . mysql_real_escape_string($signature) . "'"; 

nameフィールドが正確に等しいにある場合the $signature

ps:&&execQuery($query);は意味がありません

+0

にあります。 perlスクリプトを書いて、HSDapiを使ってDBにアクセスしてください。このサブルーチン(mysql_real_escape_string)は定義されていません。このサブルーチンにアクセスするには、どのapiをインストールする必要がありますか? – shreyasGowda

+0

'mysqli'が指定されているので' php'を使ったと思っています。さて、Perlでクエリの文字列を引用する方法を見つける必要があります – zerkms

関連する問題