PHPプログラミングでは、 Connect()関数は通常、データベースまたはリモートサービスへの接続を確立するために使用されます。 connect()がfalseを返すと、接続が失敗し、プログラムが適切に機能しないことを意味します。この記事では、 Connect()がFalseを返す一般的な理由を詳細に紹介し、対応するトラブルシューティングとソリューションを提供します。
接続の宛先アドレス(IPまたはドメイン名)またはポートが誤って埋められているため、接続が成功することができなくなります。
$host = "m66.net"; // ここでドメイン名が正しいことを確認してください
$port = 3306; // 例えばMySQLデフォルトのポート
$conn = @fsockopen($host, $port, $errno, $errstr, 5);
if (!$conn) {
echo "接続に失敗しました,エラーメッセージ:$errstr ($errno)";
}
ネットワークはサーバー間で接続されていないか、中間のファイアウォールがポートアクセスをブロックするため、接続タイムアウトまたは拒否されます。
データベースに接続する場合、ユーザー名またはパスワードエラーが接続に失敗する可能性があります。厳密に言えば、 Connect()が成功する可能性がありますが、認証の障害はその後の操作を防ぎます。
ターゲットサービス(データベース、APIサーバーなど)は開始されておらず、異常ではなく、接続を受け入れることができません。
対応するPHP拡張機能または構成エラーがない場合、接続関数が返されます。
コマンドラインツールを使用して、接続が遮断されていないかどうかをテストします。
ping m66.net
telnet m66.net 3306
ドメイン名の解像度が正常で、ポートが開いていることを確認してください。
ローカルファイアウォールルールとサーバーファイアウォールルールにより、ターゲットポートへのアクセスが可能かどうかを確認します。
PHPエラー表示を有効にして特定のエラー情報を表示し、原因を見つけるのに役立ちます。
ini_set('display_errors', 1);
error_reporting(E_ALL);
MySQLなど、ターゲットサービスが稼働していることを確認してください。
systemctl status mysql
MySQLI、PDO_MYSQLなど、接続関数に使用される必要な拡張機能がインストールされていることを確認してください。
PHPのmysqliを使用してデータベースに接続するとします。
$host = "m66.net";
$user = "dbuser";
$password = "dbpassword";
$dbname = "testdb";
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_errno) {
echo "接続に失敗しました,エラーコード: " . $conn->connect_errno . ",エラーメッセージ: " . $conn->connect_error;
exit();
}
echo "接続に正常に!";
$conn->close();
ドメイン名をM66.netに置き換えます
接続が失敗したときに詳細なエラーメッセージを出力します
オブジェクト指向の接続を使用して、より直感的にします