Score:-3

วิธีรับชื่อตารางจากฐานข้อมูลภายนอกในสคีมาที่ไม่ใช่สาธารณะ

ธง cn

ฉันกำลังเขียนโมดูลเอนทิตีการกำหนดค่าใน drupal 9 ฉันต้องการแสดงรายการตารางทั้งหมดจากฐานข้อมูลภายนอก (postgis) ในสคีมาที่ชื่อว่า gi การสลับระหว่างฐานข้อมูลไม่มีปัญหา ฉันกำลังค้นหาวิธีเพื่อให้ได้ชื่อตารางที่เรียกว่า gruenzuege เพื่อใส่สิ่งนี้ในรูปแบบมาร์กอัป

//แบบฟอร์มที่จะบันทึกตาราง

 $แบบฟอร์ม['ตาราง'] = [
      '#type' => 'ชุดฟิลด์',
      '#title' => $this->t('ตาราง'),
      '#collapsible' => TRUE, // เพิ่ม
      '#collapsed' => FALSE, // เพิ่มแล้ว
  ];

// การเชื่อมต่อฐานข้อมูลภายนอก

$postgis_database = อาร์เรย์(
      'ฐานข้อมูล' => $drugis_postgis_connection->getdatabase(),
      'ชื่อผู้ใช้' => $drugis_postgis_connection->getusername(),
      'รหัสผ่าน' => $drugis_postgis_connection->getpassword(),
      'host' => $drugis_postgis_connection->gethost(),
      'ไดรเวอร์' => 'pgsql'
  );
ฐานข้อมูล::addConnectionInfo('postgis', 'default', $postgis_database);
ฐานข้อมูล::setActiveConnection('default', 'postgis');

//ตัวอย่างการดึงตาราง:gruenzuege ใน drupal

    $results = Database::getConnection('default', 'postgis')->query('SELECT * FROM "gi"."gruenzuege"')->fetchAll();
dpm(ผลลัพธ์ $);

ฉันไม่เข้าใจวิธีการค้นหาสคีมาอื่นเพื่อรับเฉพาะชื่อตารางของสคีมา gi เป็นโต๊ะเดียวจริงๆ ขอบคุณที่ช่วยเหลือ

cn flag
ยินดีต้อนรับสู่ Drupal Answers :) ดูเหมือนเป็นคำถามเกี่ยวกับ SQL มากกว่า Drupal - หากไม่ โปรดแก้ไขและระบุให้ชัดเจนว่าส่วนใดของ Drupal คืออะไร ขอบคุณ!
Steffen  avatar
cn flag
ขออภัย ฉันหวังว่าตอนนี้จะชัดเจนขึ้น
Score:0
ธง cn

แสดงชื่อตารางทั้งหมดในอาร์เรย์

$example_database = อาร์เรย์(
      'ฐานข้อมูล' => ...,
      'ชื่อผู้ใช้' => ...,
      'รหัสผ่าน' => ...,
      'โฮสต์' => ...,
      'ไดรเวอร์' => 'pgsql'
  );

ฐานข้อมูล::addConnectionInfo('example_key', 'default', $example_database);
ฐานข้อมูล::setActiveConnection('default', 'example_key');

$result=Database::getConnection('default', 'example_key')->query("SELECT table_name FROM information_schema.tables WHERE table_schema = '" . example_schema . "';");
  $tables = $result->fetchAll();

foreach( $tables เป็น $table ) {
      dpm($table->table_name);
      $tableNames[] = $table->table_name;
  }

ฐานข้อมูล::setActiveConnection();

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา