PHP でvishwasthali.orgという名前の Web サイトを開発し、サードパーティ サーバーのIIS7でホストしています。MySQLi APIを使用して記述したデータベース アクセスのコードを除いて、他のすべては問題なく動作します。コードはローカルホストでは正常に機能しますが、サーバーでは機能しません。phpinfo()
サーバーと私のマシンで使用すると、次のことがわかりました。
(1) 私のマシン (Windows 7 32 ビット、Apache ホスティング環境で実行) では、PHP のバージョンは5.3.8で、mysqli のバージョンは5.0.8-devです。
(2) サーバー (Windows Server 2008、IIS7 ホスティング環境で実行) では、PHP バージョンは5.2.14で、mysqli バージョンは5.0.51aです。
phpinfo()
サーバー上
のスクリーンショットは次のとおりです。
mysqliコードのサンプルを次に示します。
session_start();
include_once 'code_files/conn.php';
$stmt = $mysqli->prepare('SELECT * FROM adminusers WHERE Username = ? AND `Password` = ?');
$stmt->bind_param('ss', $_POST['Username'], $_POST['Password']);
$stmt->execute();
$result = $stmt->get_result();
if($result->num_rows > 0)
........
else
........
使用するとmysqliecho get_class($mysqli);
が表示されます。つまり、コードは mysqli を検出します。しかし、声明は準備されていません。エラーが表示されない場合でも、IIS で PHP が実行されていることが原因である可能性があります。$stmt
$mysqli->error;
データベース アクセスのコードを従来のmysql API に変更するか、 php.netから最新の PHP バイナリをダウンロードしてサーバー上の PHP および MySQLi バージョンをアップグレードするかの 2 つのオプションがあります。最初のオプション (これは確実に機能します) は使いたくありません。その理由を教えていただければ幸いです。後者は私の手にありません。これら以上のものは考えられません。
php_mysqli.dll を置き換えると、mysqli バージョンがアップグレードされる可能性があると思いますが、わかりません。しかし、PHP のバージョンはどうでしょうか。
この場合、どうすればよいでしょうか。サーバー上の PHP と MySQLi のバージョンをアップグレードすると、問題は解決しますか? はいの場合、サーバー上で実行されている他の PHP Web サイトに影響を与えますか?
前もって感謝します。