web-dev-qa-db-fra.com

Requête de base de données avec une condition similaire

Actuellement, j'utilise la requête suivante pour sélectionner les données de la base de données

$result = db_query("select data from {config} where name like '%IPPOOL_POOL%' ");
while ($row = $result->fetchObject()) {
  $ips=$row->value;
}

Mais cela a généré une erreur comme

Propriété non définie: stdClass :: $ value

Aidez-moi à l'implémenter dans Drupal 8.

5
Jitha M Saroj

Selon page doc Drupal db_like

Obtenez une connexion à la base de données injectée dans votre service à partir du conteneur et appelez escapeLike () dessus.

Par exemple,

$injected_database->escapeLike($string);

Essayez quelque chose comme:

$database = \Drupal::database();
$result = $database->select('table_name', 't')
    ->fields('t', ['field_1', 'field_2'])
    ->condition('field_1', "%" . $database->escapeLike($string) . "%", 'LIKE')
    ->execute()
    ->fetchAll();

Lire Requêtes de base de données dans Drupal 8 pour une meilleure compréhension de la requête de base de données dans drupal 8.

10
Yusef