J'ai une requête comme celle-ci dans Drupal 6:
$sql = 'SELECT sid, score FROM search_index WHERE Word LIKE "%%%s%%"';
$result = db_query($sql,$search_term);
Et cela a bien fonctionné, mais maintenant je passe à Drupal 7.
J'ai lu et cela est censé fonctionner, mais ce n'est pas:
$sql = 'SELECT sid, score FROM search_index WHERE Word LIKE "%:term"';
$result = db_query($sql,array(':term'=>$search_term));
Est-ce que quelqu'un sait ce que je fais mal?
Essaye ça.
$sql = 'SELECT sid, score FROM {search_index} WHERE Word LIKE :term';
$result = db_query($sql, array(':term' => '%' . db_like($search_term)));
Si vous suivez le lien suivant, http://api.drupal.org/api/drupal/includes!database!database.inc/group/database/7 Cela vous dira que,
Notez que les espaces réservés doivent être une valeur "complète". Par exemple, lors de l'exécution d'une requête LIKE, le caractère générique SQL,%, doit faire partie de la valeur, pas la requête elle-même.
Donc
SELECT nid, title FROM {node} WHERE title LIKE :title%;
Est incorrect.
La requête doit être
SELECT nid, title FROM {node} WHERE title LIKE :title;