ホームページ >バックエンド開発 >PHPチュートリアル >phpがmysql_PHPチュートリアルに接続できない問題の解決策のまとめ
この記事は、PHP が MySQL データベースに接続できない場合に、PHP 開発でよく発生するいくつかの問題の解決策をまとめて共有しています。必要な方は参照してください。
質問1
今日ノートブックに mysql と php をインストールしましたが、すべてが正常にインストールされました (php@IIS7.5-fastCGI)。ただし、phpmyadmin を使用して接続してテストすると、「#2002 接続できません」というエラーが表示されます。他のプログラムを使用した場合も同じ問題が発生します。
確認すると、php の mysql 拡張機能が正しくインストールされ、mysql サービスが正常に起動します。これは奇妙なことです。 navicatを使って再度接続すると繋がりました。 。どうやらphpとmysql間の通信に問題があるようです。
Baidu で検索したところ、問題が見つかりました:
mysql_connect() 関数のデータベースサーバーパラメータは現在 localhost に設定されていますが、127.0.0.1 に変更すると正常にアクセスできるようになります。
システムのホスト ファイルは、127.0.0.1 から localhost への解決を提供しません。
解決策 (win7 システムを例にします): C:\Windows\System32\drivers\etc\hosts ファイルを見つけます。デフォルトは、デスクトップなどの別のパスにコピーする必要があります。ファイルを開き (オープン方法: メモ帳)、ファイルの最後に次のように追加します:
127.0.0.1 ローカルホスト
すでに存在する場合は、その前にある「#」を削除します。
質問2
phpinfo() などの PHP スクリプトは通常どおり実行できます。
「mysql_connect」関数が表示されるとすぐに応答がなく、エラーも報告されません。
$conn = mysql_connect("127.0.0.1","root","xxxx") または die("MYSQL データベース接続に失敗しました:".mysql_error()); など
が Apache ログ ディレクトリ error.log に表示されます
PHP 警告: PHP スタートアップ: ダイナミック ライブラリ 'c:\\php\\ext\\php_mysql.dll' をロードできません
解決策
「libmysql.dll」をApacheのbinディレクトリにコピーします。次に、再起動して error.log を観察します。エラーが消えたら、成功です。
別の情報: オンライン情報には、「libmysql.dll」と「php_mysql.dll」を Windows/system32 にコピーするようにと記載されています。
質問3
コードは次のとおりです | コードをコピー |
//上記コードは省略しています $link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); //以下のコードは省略 ?> |
致命的なエラー: var/www/html/mytest.php の未定義関数 mysql_connect() の呼び出し
解決策
1.php.iniextension_dir を絶対パス「d:\apache2\php\ext」に設定しないと、環境によってはエラーが発生します。
次の 2 行の関数拡張を開きます
拡張子=php_mysql.dll
拡張子=php_mysqli.dll
2. libmysql.dll (php ディレクトリの下) と php_mysql.dll (php/ext ディレクトリの下) を c:\windows\system32 ディレクトリにコピーします (libmysql.dll は php ディレクトリにある必要があります。たとえば、私の場合は D :\apache2\ libmysql.dll は php ディレクトリにあり、php_mysql.dll は D:\apache2\php\ext にあります)
3. テスト、
1> まずコマンドラインを開きます
A) [スタート] メニュー -> [mysql] -> [mysql5 サーバー] -> [MySQL コマンド ライン クライアント] をクリックします。
//このステップが成功すると、mysql セキュリティは成功します。失敗すると、mysql のインストールは失敗します。アンインストールして再インストールしてください。
B) パスワードを入力してください
//この手順が正常であれば、root アカウントのパスワードが正しいことを意味します。失敗した場合は、アカウントのパスワードが間違っています
2> ホームディレクトリに新しいファイルを作成し、testmysql.php として保存し、ブラウザに http://localhost/testmysql.php (または http://localhost:81/testmysql.php) と入力します
そうでない場合は、Apache が php メソッドと mysql メソッドをロードしたかどうかを確認してください
Apache で php5 をサポートするには、次の 3 行を httpd.conf ファイルに追加します
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
php.ini の次の 2 行からセミコロンを削除します
拡張子=php_mysql.dll
拡張子=php_mysqli.dll
php_mysql.dll と libmysql.dll を system32 にコピーします
Apacheサーバーを再起動します