0

ユーザーがデータベース名を指定できるようにする単純なユーザーフォームを作成し、ユーザーがdrupalサイトを送信すると、指定されたデータベース名に接続され、ファイルsettings.php: myDataBaseでデータベースを定義し、試したときに

  db_set_active('myDataBase');

正常に動作しますが、テキスト フィールドに myDataBase と入力して送信し、送信された値を使用してデータベースに接続すると、機能しませんでした。

<?php 
 function testform_menu() {
 $items = array();
 $items['test'] = array(
 'title' => 'connect an external database',
 'page callback' => 'drupal_get_form',
 'page arguments' => array('testform'),
 'access callback' => TRUE,
 'type' => MENU_NORMAL_ITEM,
 );

  return $items;
 }

 function testform($form, &$form_state) {
  $form = array();
  $form['Databasename'] = array(
   '#type' => 'textfield',
   '#title' => t('enter the database name'),
   '#description' => t('a user interface to switch between databases'),
   '#size' => 28,
   '#required' => TRUE,

   );
 $form['submit'] = array(
 '#type' => 'submit',
 '#value' => t('Submit'),
 );


  return $form;
}

function testform_validate($form, &$form_state) {

}

function testform_submit($form, &$form_state) {

if (db_set_active('myDataBase'))
{
    drupal_set_message('database connected'); // works
}

 //   $database_name =$form_state['values']['Databasename']; // ius not working!!
 //    if ($database_name ) {
 //    db_set_active($database_name); // I even tried to parsing the submitted value to a string but didnt work in both case
 //    drupal_set_message(t('connected to the database'.' '.$database_name));
 //    }
db_set_active();
}
4

1 に答える 1