Điểm:-3

Cách lấy tên bảng từ DB bên ngoài trong lược đồ không công khai

lá cờ cn

Tôi đang viết một mô-đun thực thể cấu hình trong drupal 9. Tôi muốn liệt kê tất cả các bảng, từ cơ sở dữ liệu bên ngoài (postgis) trong lược đồ có tên là gi. Việc chuyển đổi giữa các cơ sở dữ liệu không có vấn đề gì. Tôi đang tìm cách, chỉ lấy tên của bảng có tên là gruenzuege để đặt bảng này ở dạng đánh dấu.

// form lưu bảng

 $form['bảng'] = [
      '#type' => 'bộ trường',
      '#title' => $this->t('Bảng'),
      '#collapsible' => ĐÚNG, // Đã thêm
      '#collapsed' => SAI, // Đã thêm
  ];

//Kết nối cơ sở dữ liệu bên ngoài

$postgis_database = mảng(
      'cơ sở dữ liệu' => $drugis_postgis_connection->getdatabase(),
      'tên người dùng' => $drugis_postgis_connection->getusername(),
      'mật khẩu' => $drugis_postgis_connection->getpassword(),
      'máy chủ lưu trữ' => $drugis_postgis_connection->gethost(),
      'trình điều khiển' => 'pssql'
  );
Cơ sở dữ liệu::addConnectionInfo('postgis', 'default', $postgis_database);
Cơ sở dữ liệu::setActiveConnection('default', 'postgis');

//ví dụ để tìm nạp table:gruenzuege trong drupal

    $results = Cơ sở dữ liệu::getConnection('default', 'postgis')->query('SELECT * FROM "gi".."gruenzuege"')->fetchAll();
dpm($kết quả);

Tôi không hiểu cách truy vấn đến một lược đồ khác, để chỉ lấy tên bảng của lược đồ gi? Nó thực sự là bảng duy nhất. Cảm ơn vì sự giúp đỡ

lá cờ cn
Chào mừng bạn đến với Câu trả lời của Drupal :) Điều này nghe giống như một câu hỏi về SQL hơn là về Drupal - nếu không, vui lòng chỉnh sửa và làm rõ phần Drupal của nó là gì? Cảm ơn!
Steffen  avatar
lá cờ cn
Xin lỗi, tôi hy vọng nó rõ ràng hơn bây giờ
Điểm:0
lá cờ cn

liệt kê tất cả các tên bảng trong một mảng

$example_database = mảng(
      'cơ sở dữ liệu' => ...,
      'tên người dùng' => ...,
      'mật khẩu' => ...,
      'máy chủ' => ...,
      'trình điều khiển' => 'pssql'
  );

Cơ sở dữ liệu::addConnectionInfo('example_key', 'default', $example_database);
Cơ sở dữ liệu::setActiveConnection('default', 'example_key');

$result=Database::getConnection('default', 'example_key')->query("CHỌN tên_bảng TỪ information_schema.tables WHERE table_schema = '" . example_schema . "';");
  $tables = $result->fetchAll();

foreach( $tables dưới dạng $table ) {
      dpm($table->table_name);
      $tableNames[] = $table->table_name;
  }

Cơ sở dữ liệu::setActiveConnection();

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.