Puncte:-3

Cum să obțineți nume de tabel din DB extern în schema non-publică

drapel cn

Scriu un modul de entitate de configurare în drupal 9. Vreau să listez toate tabelele, dintr-o bază de date externă (postgis) în schema numită gi. Comutarea între bazele de date nu este o problemă. Caut o modalitate de a obține doar numele tabelului numit gruenzuege pentru a pune acest lucru într-o formă de marcare.

//forma în care se salvează tabelul

 $form['tables'] = [
      '#type' => 'set de câmpuri',
      '#title' => $this->t('Tabele'),
      '#colapsible' => TRUE, // Adăugat
      '#collapsed' => FALSE, // Adăugat
  ];

//Conexiune la baza de date externă

$postgis_database = matrice(
      'database' => $drugis_postgis_connection->getdatabase(),
      'username' => $drugis_postgis_connection->getusername(),
      'parolă' => $drugis_postgis_connection->getpassword(),
      'gazdă' => $drugis_postgis_connection->gethost(),
      „driver” => „pgsql”
  );
Database::addConnectionInfo('postgis', 'default', $postgis_database);
Database::setActiveConnection('default', 'postgis');

//exemplu pentru preluarea tabelului:gruenzuege în drupal

    $rezultate = Database::getConnection('default', 'postgis')->query('SELECT * FROM "gi"."gruenzuege"')->fetchAll();
dpm($rezultate);

Nu înțeleg cum să întreb la o altă schemă, pentru a obține numai numele de tabel ale schemei gi? Este de fapt singura masă. Multumesc pentru ajutor

drapel cn
Bine ați venit la Drupal Answers :) Aceasta pare o întrebare despre SQL, mai degrabă decât Drupal - dacă nu, vă rugăm să editați și să clarificați care este partea Drupal? Mulțumiri!
Steffen  avatar
drapel cn
Scuze, sper că acum este mai clar
Puncte:0
drapel cn

listând toate numele tabelelor într-o matrice

$example_database = array(
      'bază de date' => ...,
      'username' => ...,
      'parolă' => ...,
      'gazdă' => ...,
      „driver” => „pgsql”
  );

Database::addConnectionInfo('example_key', 'default', $example_database);
Database::setActiveConnection('default', 'example_key');

$rezultat=Baza de date::getConnection('default', 'example_key')->query("SELECT table_name FROM information_schema.tables WHERE table_schema = '" . example_schema . "';");
  $tablele = $rezultat->fetchAll();

foreach( $table ca $table ) {
      dpm($table->table_name);
      $tableNames[] = $table->table_name;
  }

Baza de date::setActiveConnection();

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.