PHP 5.2環境でPHP5.3.5(Apacheモジュールとしてインストール)用に作成されたスクリプトをテストしたかったのです。
Apache2.0.64とPHP5.2.17の新しいコピーをインストールし、以前にPHP5.3を構成したのとまったく同じように構成しました。私がApachebinディレクトリにコピーlibmysql.dll
したことを除いて(PHP 5.3にはもうこのファイルがありません)。
両方のサーバーは手動で構成され(XAMPPバージョンなどではありません)、ローカルにインストールされた同じmySQLServer5.5.8にアクセスします。両方のサーバーは、システムアカウントでWindowsServerとして実行されています。
PHP 5.3は完全に機能し、PHP5.2はエラーを返します。
Warning: mysql_connect() [function.mysql-connect]: Access denied
for user 'SYSTEM'@'localhost' (using password: NO) in C:\Tools\htdocs\myscript.php on line 33
私が使用しているSQLユーザーは、PHPコードでハードコーディングされていますが、そうではありませんSYSTEM@localhost
。SYSTEMは、Apacheが実行されているWindowsアカウントのようです。(管理者アカウントからApacheを起動すると、メッセージがに変わりますAdministrator@localhost
。)
デフォルトのユーザー(名前は'')がSQL-Serverで削除されました。この空のユーザーが存在する場合、PHP 5.2はデータベースに正常に接続しますがmysql_select_db
、権限のためにデータベースの選択()に失敗します。