1

PHP関数内からmysqlに接続しようとしています。資格情報は別の PHP ファイルに保存され、関数内に含めています。しかし、スクリプトを実行すると、次のエラーが発生します。

Warning: mysql_query(): A link to the server could not be established in C:\xamp
p\htdocs\abc\test.php on line 12. Access denied for user 'ODBC'@'localhost' (using password: NO)    


private function insertToMysql()
{
    include_once('connect_db.php');

    $connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die('Oops connection error -> ' . mysql_error());
    mysql_select_db(DB_DATABASE, $connection) or die('Database error -> ' . mysql_error());

    //Queries

}

include_once をエコーし​​てみましたが、1 が返されました。これは、connect_db.php が含まれていることを意味しますが、何らかの定数が読み込まれていません。問題は何でしょうか?資格情報は完璧で、私はそれらを確認しました。私はPHPの初心者ではありません。

connect_db.php の内容:

<?php
  define('DB_SERVER', 'localhost');
  define('DB_USERNAME', 'root');
  define('DB_PASSWORD', '<MyPassword>');
  define('DB_DATABASE', 'testdb');
?>
4

2 に答える 2

0

接続ハンドラを削除

private function insertToMysql()
{
    include_once('connect_db.php');

    mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die('Oops connection error -> ' . mysql_error());
    mysql_select_db(DB_DATABASE) or die('Database error -> ' . mysql_error());

    //Queries

}
于 2012-12-08T21:43:45.087 に答える
0

はローカル変数のよう$connectionですが、グローバルにすることで修正できます。

このようにしてください。

include_once('connect_db.php');
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die('Oops connection error -> ' . mysql_error());
mysql_select_db(DB_DATABASE, $connection) or die('Database error -> ' . mysql_error());

function insertToMysql()
{
    //Queries
    mysql_query('Some query');
}
于 2012-12-08T21:45:43.153 に答える