2011-07-17 20 views
1

もう一度私の質問を見ていただきありがとうございます。現在選択されているデータベースを変更してください

私は初めて、あるmysqlサーバ環境内に格納された複数のデータベースを使用しているPHPプログラムを作成しています。

最初のデータベースが(そのプロファイルに属するデータベースの名前を含む)は、ログイン情報やユーザプロファイル等の汎用的なデータを扱う

他のデータベース(上記示唆したように)は、各プロファイルに固有であり、含有します機密情報を扱うことができます。これらのデータベースには多くの情報があり、それぞれに数百、数千のレコードを持つ12個のテーブルがあります。

だから私の問題に。

データベース接続などの各ページに共通する部分を含めるには、約10個のWebページを作成し、PHPのrequire_once()を使用しました。実行後に各ページが接続を閉じることを確認します。このスクリプト内

は私が

// Function to connect a specific database 
    function dbc($dbhost, $dbuser, $dbpass, $compDbase){   
     return mysqli_connect($dbhost, $dbuser, $dbpass, $compDbase) or die ('Error connecting to mysql server, database supplied' . mysqli_error());  
    } 

最初の三つの変数が静的であり、同じファイルのthatsに設定された接続を必要とするすべての文書に含まれている次の関数を作成しました。

dbc($dbhost, $dbuser, $dbpass, 'database_user1'); 

しかし、これはうまくいかないようです。私はmysqli_close($ dbc)を追加しようとしました。この関数を呼び出す前に、汎用データベースの名前を指定します。また、私は)私は現在、それらのいずれもが仕事とmysqliのは(mysqli_errorを使用して任意の情報をスローしません選択されているデータベースを変更できるかどうかを確認するために

mysqli_select_db('database_user1', $dbc); 

を試してみました。

ヒント?



私はITに答えました。

は、私が追加する必要があるのはその最初、私は、一般的なデータベース接続の$ DBCを使用したクエリの中に「database.table」

ました。コードは次のようになります

$query = "SELECT * FROM database_user1.skill"; 
+0

なぜこれに2つ以上のデータベースを使用していますか?誰もあなたのデータベースの内部を見ることができます(そうしない限り)ので、機密データを別のデータベースに保存するのはなぜですか? –

+0

実際にはメンテナンスのために多くの人がサービスにサインアップし、そのデータベース内にすべての特定の情報が含まれているためデータベースが作成されます。 –

答えて

1

ちょっと単純にmysqlコマンドを実行することはできません:db1、use db2?

+0

それは非常に良い提案と私はhavent試したが、私が試した最初のものであったはずです!私はあなたに戻ってきます –

+0

これはPHPで動作するようになることはできません、私はuse database_user1の最初のクエリを送信しようとし、テーブル上のクエリが、それは動作しません。あなたはこれをどのように実装しますか? –

+0

@ Paul-Chambers私にとっては興味がありますが、現在のデータベースに何かを挿入したり更新したりすると動作しますか?私はこれでどこに行くのか知っていますか? – Max

関連する問題