データベースにクエリを実行しようとしていますが、何らかの理由で、ハードコードされたパラメーターを入力した場合にのみクエリが機能します。変数を使用すると、クエリが機能しなくなります...
これは、ハードコードされたパラメーターを使用した私のクエリであり、問題なく動作します。
$q_jobs = 'select distinct nid from node n, field_data_field_job_tags as tags
where (type= \'job\' and n.language = \'nl\' and tags.entity_id = n.nid
and tags.field_job_tags_value = \'Enterprise Asset Management\')
order by n.changed desc limit 7';
しかし、変数を使用すると、クエリが機能しなくなります...
$q_jobs = 'select distinct nid from node n, field_data_field_job_tags as tags
where (type= \'job\' and n.language = :lang and tags.entity_id = n.nid
and tags.field_job_tags_value = :title)
order by n.changed desc limit 7';
$results_jobs = db_query($q_jobs, array(':lang' => $language->language,
':title' => $node->title));
これは Drupal クエリですが、構文のどこかでエラーが発生しただけではないでしょうか?
次のエラーが表示されます。
PDOException: SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の「(type= 'job' and n.language = 'nl' and tags.entity_id = n.nid and tags.field_job' の近くで使用する正しい構文を確認してください。 {node} n とは異なる nid、タグとしての field_data_field_job_tagswhere (type= 'job' and n.language = :lang and tags.entity_id = n.nid and tags.field_job_tags_value = :title)order by n.changed desc limit 7; Array ( [:lang] => nl [:title] => Enterprise Asset Management ) in rd_get_related_news_and_blogs()