从php连接到mysql

从php连接到mysql,php,mysql,connection,Php,Mysql,Connection,我正试图连接到我的数据库,并遵循一本书。我写了第一组代码,它不起作用。所以在谷歌搜索之后,我找到了第二段代码。它工作得很好,但我很想知道它的区别,因为我看不到它 <?php try { $huh = new PDO('mysql:host=localhost;dbname=ijdb', 'ijdbuser', 'test'); $huh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

我正试图连接到我的数据库,并遵循一本书。我写了第一组代码,它不起作用。所以在谷歌搜索之后,我找到了第二段代码。它工作得很好,但我很想知道它的区别,因为我看不到它

    <?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'
?>


包括'output.php'而是包含'output.php'

您的sql语法有错误

$huh->exec("SET CHARATER SET utf8"); // Note: Charater written instead of Character

第一段代码包含以下语句

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

在catch语句的外部。变量$e仅在catch语句中定义。

第一个代码块中有三个错误:

  • $huh->exec(“设置字符集utf8”); 应该是 $huh->exec(“设置字符集utf8”);(C)缺失

  • $output='已建立数据库连接'$e->getMessage(); 应该是 $output='已建立数据库连接'; 因为你只能在捕捉“陷阱”中捕捉例外

  • 包括“output.php”; 应该是 包括“output.php”


  • 我不知道这个问题。但是如果你使用mysqli会更好,因为mysql将被弃用…唯一的问题是,用户看到消息的方式!没别的。@TWCrap他用的是PDO,不是mysql。@TWCrap请不要把这个编码误认为是mysql,这是PDO。