0

私は自分のデータベースに接続して本をフォローしようとしています。私は最初のコードセットを書きましたが、うまくいきませんでした。それで、グーグルした後、私はコードの2番目のブロックを見つけました。正常に動作しますが、見えないので違いを知りたいです。

    <?php
try
{ 
    $huh = new PDO('mysql:host=localhost;dbname=ijdb', 'ijdbuser', 'test');
    $huh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $huh->exec("SET CHARATER SET utf8");
} catch (PDOException $e) {
    $ouput = 'Unable to connect to the database server. ' . $e->getMessage();
    include 'output.php';
}
    $output = 'Database connection established. ' . $e->getMessage();
    include 'ouput.php';
?>

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=ijdb', 'ijdbuser', 'test');
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
    $output = "Error! " . $e->getMessage();
    include 'output.php';
}
    $output = 'Success!';
    include 'output.php'
?>
4

4 に答える 4

1

最初のコード ブロックに 3 つのエラーがあります。

  1. $huh->exec("SET CHARATER SET utf8"); $huh->exec("SET CHARACTER SET utf8"); のはずです。(Cがありません)

  2. $output = 'データベース接続が確立されました。' . $e->getMessage(); $output = 'データベース接続が確立されました。'; Catch "trap" 内でのみ例外をキャッチできるため

  3. 'output.php' を含めます。「output.php」を含める必要があります。

于 2012-09-28T09:25:16.347 に答える
0

SQL 構文にエラーがあります

$huh->exec("SET CHARATER SET utf8"); // Note: Charater written instead of Character
于 2012-09-28T07:38:01.783 に答える
0

コードの最初のブロックにはステートメントがあります

$output = 'Database connection established. ' . $e->getMessage();

catch ステートメントの外側。変数 $e は、catch ステートメント内でのみ定義されます。

于 2012-09-28T07:38:10.740 に答える
0

include 'ouput.php';最初のものでは、代わりにinclude 'output.php';

于 2012-09-28T07:37:49.797 に答える