web-dev-qa-db-ja.com

同様の条件を持つデータベースクエリ

現在、私は次のクエリを使用してデータベースからデータを選択しています

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

しかし、これは次のようなエラーを生成しました

未定義のプロパティ:stdClass :: $ value

Drupal 8。

5
Jitha M Saroj

Drupal db_like doc page によると

コンテナーからサービスに挿入されたデータベース接続を取得し、それに対してescapeLike()を呼び出します。

例えば、

$injected_database->escapeLike($string);

次のようなものを試してください:

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

Drupal 8のデータベースクエリについて理解を深めるには、 drupal 8 のデータベースクエリをお読みください。

10
Yusef