0

サーバーに test.php というファイルがあります。内容は次のとおりです。

<?php
echo "hi\n";
try {
    $dbh = new PDO('mysql:host=localhost;dbname=db', "foo", "bar");
    echo "hi\n";
} catch (PDOException $e) {
    die("Error!");
}
echo "hi\n";
?>

コードはかなり単純です。すべてがうまくいけば、hi が 3 回出力されるはずです。

このコードをシェルから実行すると、実際に「hi」が 3 行に分かれて出力されます。ただし、Web サイト (http://localhost/test.php) からこのファイルにアクセスすると、hi が 1 つだけ出力されます。

$dbh の削除 = new PDO('mysql:host=localhost;dbname=db', "foo", "bar"); 3 つすべてが Web サイト経由で正常に印刷されます。

MySQL 情報は正しく、ユーザーはデータベースにアクセスできます。

シェルを介してファイルに直接アクセスして 3 回すべて印刷するのに、Web サイト経由でアクセスすると 1 回しか印刷されないのはなぜですか?

4

1 に答える 1

0

PDO 拡張機能を有効にしていますか? "hi" が 1 つしか表示されない場合は、PDO オブジェクトの宣言で致命的なエラーが発生したことを意味します。このようなものを確認して"Fatal error: Class 'PDO' not found"ください。

http://php.net/manual/en/pdo.installation.php

とにかくあなたのコードはうまくいきます。

于 2012-08-15T04:58:48.997 に答える