2016-07-17 16 views
-3

これは私が使っているコードです。そして、私はそれが常にSQLデータベースに接続できません。

を「サーバーに接続できません」と言う開くと言うべき文があれば、あなたのプログラムましたのでmysqli_connectの私

<?php 

define('HOST','localhost'); 
define('USER','root'); 
define('PASSWORD',''); 
define('DATABASE','trialdb'); 

$link = mysqli_connect(HOST,USER,PASSWORD,DATABASE); 
mysqli_select_db($link,DATABASE); 

if (mysqli_connect(HOST,USER,PASSWORD,DATABASE)) { 
    die("Cannot connect to the server!"); 
} else { 
    echo "Success! You are connected to the server!<br />"; 
} 
if (mysqli_select_db($link,DATABASE)) { 
    echo "Success! You are now connected to the database."; 
} else { 
    die ("Cannot connect to the database!"); 
} 
?> 
+2

注:接続を2回呼び出す必要はありません。 'if'ブロックで' $ link'をチェックするだけで、[接続エラー](https://www.google.com.ph /url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwitmOnIz_vNAhUCF5QKHaauAl8QFggaMAA&url=http%3A%2F%2Fphp.net%2Fmanual%2Fen%2Fmysqli.connect-error.php&usg=AFQjCNGTaGUBimHBz5iC7HdOy0E2-pcZ5g&sig2=E8BenYEYYBnHM0tQlet4Mg&bvm = bv.127178174、d.dGo) – Ghost

+0

長時間、MySQLiの手続き的な方法を使用して誰も見たことがありません。 接続できない場合は、資格情報とデータベース名を確認してください。カスタムエラーメッシュを画面に書き込む代わりに、 "try catch"を使用して例外をスローします。 (mysqli_connect_errno()){ printf( "接続に失敗しました:%s \ n"、mysqli_connect_error()); mysqli_connect_err()を使用して、次のような詳細な情報をmysqli_connect_errno()で取得します: exit(); } – DevWL

+0

あなたのMySQLは動作していますか?あなたは 'mysql'コマンドラインで接続できますか?ユーザー名とパスワードの組み合わせは正しいですか? 'localhost'を' 127.0.0.1'と入れ替えたらどうでしょうか?非常に多くの質問... – jpaljasma

答えて

1

戻り値の型がtruthyです助けてください:「に接続できませんサーバーに接続している場合は「サーバー」と表示されます。

変数、if文、関数から始まるCS 101トピックのリフレッシャーでさらに30時間を過ごすことができます。

1

コードデザインには論理的な欠陥があります。一度接続してから成功を確認するのではなく、データベースに2回接続しています。接続が成功したときに加えて、ライン

if (mysqli_connect(HOST,USER,PASSWORD,DATABASE))...show error 

は、エラーが表示されます。より有用な結果を得るには、以下のデザインパターンを使用してください。

$link = mysqli_connect(HOST,USER,PASSWORD,DATABASE); 
if (!$link) { 
    echo "MySQL error #". mysqli_connect_errno() .":<br/>"; 
    echo mysqli_connect_error(); 
    exit; 
} 
... //here it's safe to choose a DB and execute queries 

これは開発用です。本番環境では、ブラウザにサーバーエラーを表示しないでください。

+0

とエラー報告もありました。http://i.imgur.com/QlJYc2e.jpg – Drew

+0

私は実際には、それが不必要だと思ったので、 'error_reporting(E_ALL)'と 'ini_set( 'display_error'、 '1')'を削除しました。 OPの問題を解決することに至りましたが、OPはそのことを知ることで利益を得られるでしょう。 – BeetleJuice

+0

ええ、私はsnarkieであることを意味するわけではありませんが、この状況は彼が快適であるまで、すべてのソナーを必要とします。 – Drew

関連する問題