2011-12-29 5 views
0

私はこのクエリを作成しましたが、私は奇妙なエラーが発生しました。Drupal ORクエリ

$or = db_or() 
      ->condition('title', 'test', 'LIKE') 
      ->condition('author', 'test', 'LIKE') 
      ->condition('service', 'test', 'LIKE') 
      ->condition('content', 'test', 'LIKE'); 

    $query = db_select('magazine_articles') 
      ->condition($or) 
      ->execute(); 
    return $query; 

PDOException:SQLSTATE [42000]:構文エラーまたはアクセス違反:1064あなたは、あなたのSQL構文でエラーが発生しています。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文がFROM magazine_articles magazine_articlesの近くで使用されるようにしてください。WHERE((タイトルはLIKE ' ([:db_condition_placeholder_0] =>); OR(サービスのLIKE:db_condition_placeholder_0 ESCAPE '\')またはOR(コンテンツのLIKE:db_condition_placeholder_3 ESCAPE '\'));配列([:db_condition_placeholder_0] => [:db_condition_placeholder_1] =>テスト[:db_condition_placeholder_2] =>テスト[:db_condition_placeholder_3] =>テスト)

答えて

3

あなたが選択するウィッヒフィールドを指定していない、これを試してみてください。

$or = db_or() 
     ->condition('title', 'test', 'LIKE') 
     ->condition('author', 'test', 'LIKE') 
     ->condition('service', 'test', 'LIKE') 
     ->condition('content', 'test', 'LIKE'); 

$query = db_select('magazine_articles','n')->fields('n') 
     ->condition($or) 
     ->execute(); 
+0

* sigh *はい、絶対に私の悪いです。私はこれを1時間見ていて、ちょうどそれを直視しました。ありがとう:) – Nealv

+0

@Nealv - はい、私は感情を知っている=) – Cyclonecode