0

global.php ファイルで次の関数を宣言しています。

function dbconnect(){
   $mysqli = new mysqli($dbserver,$dbuser,$dbpasswd,$dbdatabase);
   if ($mysqli->connect_error){
      echo ($mysqli->connect_error);
      return null;
   } else {
      return $mysqli;
   }
}

$dbdatabase が有効なデータベースであることを 100% 確認しました。関数を呼び出すと、エラーなしで有効なオブジェクトが返されます。ただし、クエリを実行しようとすると、オブジェクトはデータベースが選択されていないと報告します。コードを削除して、必要な場所で直接実行しても問題ありません。何か不足していますか?ありがとう!

4

2 に答える 2

1

$dbserver $dbuser $dbpasswd$dbdatabaseは、関数のスコープで定義されていません。

次のようなパラメーターとしてそれらを渡す必要があります。

function dbconnect($dbserver, $dbuser, $dbpasswd, $dbdatabase){

または、貧弱なコーディング方法を使用して、次のようにして変数をグローバル化することもできます。

function dbconnect(){
    global $dbserver, $dbuser, $dbpasswd, $dbdatabase;

最初の方法を使用するか、関数内で変数を定義することをお勧めします。

于 2012-07-21T14:45:40.647 に答える
0

実は別の方法もあります。すべてをグローバルにする必要はありません。その代わりに、ローカルで作成できます。

お気に入り...

関数dbConnect(){

$server = "localhost";
$username = "root";
$password = "";
$dbname = "test";

 $con = new mysqli($server,$username,$password,$dbname);
 return $con ;

}

于 2016-03-18T18:31:00.140 に答える