2011-07-22 19 views
0
$hostname='example.com'; 
$username='someUser'; 
$password='password'; 
$dbname='aDataBase'; 
$usertable='my_table'; 

mysql_connect($hostname,$username,$password); 
@mysql_select_db($dbname) or die("Unable to select database"); 

ここでは、読み取り専用のユーザー名を使用しています。私がスクリプトをテストすると、エラー "データベースを選択できません"が表示されます。このコードでmysql dbに接続できません

ヒント?

+2

持っているあなた、実際のエラーを見て、というよりも、それを抑制し、 '()'を使用して死ぬとみなさ? – Amber

+0

ええ、ちょうど今それをしました。これは私が得るものです: '最初の通信パケットを読む'でMySQLサーバーへの接続が失われました。システムエラー:111 –

+0

@を抑制するエラーを削除します。それはエラーを抑制しています! –

答えて

2

die()メッセージに固定文字列を使用しないでください...診断には役に立たないです。また、@でエラーを抑制しないでください。

mysql_connect($hostname,$username,$password) or die(mysql_error()); 
mysql_select_db($dbname) or die(mysql_error()); 

これを使用すると、問題が発生した正確な理由がわかります。

+0

ねえ、ありがとう!ちょうどそれを試して、これは私が得るものです: "最初の通信パケットを読み取ってMySQLサーバーへの接続を失って、システムエラー:111"それは何であるかについての任意のアイデア? –

+0

は一般的な 'die()'を使っていますが、完成した製品を入手した後にはうまくいきますが、 'mysql_error()'があなたの親友です。 – webLacky3rdClass

+0

おそらくファイアウォールに問題があります。リモートDBサーバに接続しているようだからです。 –

0

試してみてください。この

$db_name = "DATABASE"; 
$db_user = "USER"; 
$db_pass = "1234"; 
$db_serv = "localhost"; 

$res = @mysql_connect($db_serv,$db_user ,$db_pass); 

if($res) 
    mysql_select_db($db_name) or die(mysql_error());