我正在尝试连接到我的数据库并关注一本书。我写了第一组代码,它没有用。所以经过一些谷歌搜索后,我找到了第二块代码。它工作正常,但我很想知道差异,因为我看不到它。
<?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'
?>
答案 0 :(得分:1)
第一个代码块中有三个错误:
$ huh-&gt; exec(“SET CHARATER SET utf8”); 应该 $ huh-&gt; exec(“SET CHARACTER SET utf8”); (缺少C)
$ output ='建立数据库连接。 '。 $ E-&GT;的getMessage(); 应该 $ output ='建立数据库连接。 “; 因为你只能在Catch“trap”
包括'ouput.php'; 应该 包括'output.php';
答案 1 :(得分:0)
include 'ouput.php';
,而不是include 'output.php';
答案 2 :(得分:0)
您的sql语法错误
$huh->exec("SET CHARATER SET utf8"); // Note: Charater written instead of Character
答案 3 :(得分:0)
第一个代码块包含语句
$output = 'Database connection established. ' . $e->getMessage();
catch语句的外部。变量$ e仅在catch语句中定义。