【发布时间】:2011-10-26 23:36:33
【问题描述】:
<?php # Nettuts Tutorial using PHP Data Objects (PDO),
/**This file contains the database access information
*This file also establishes a connection to mySQL
*and selects the database.
*Set the database access information as constants:
**/
// print_r(PDO::getAvailableDrivers());
DEFINE('DB_USER', 'root');
DEFINE('DB_PASSWORD', 'root');
DEFINE('DB_HOST', 'localhost');
DEFINE('DB_NAME', 'sitename');
$php = "htmlspecialchars";
try {
#MySQL with PDO_MYSQL
// $DBH = new PDO("mysql:host={$php(DB_HOST)}; dbname={$php(DB_NAME)}", root, root};
$DBH = new PDO("mysql:host=localhost; dbname= sitename", root, root);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
# UH-OH! Typed DELECT instead of SELECT!
$DBH->prepare('DELECT name FROM people');
} catch (PDOException $e) {
echo "I'm sorry, Dave. I'm afraid I can't do that.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
?>
OS X 中的控制台返回“[14-Aug-2011 15:59:59] PHP 注意:使用 未定义的常数根 - 假定为“根” /Applications/MAMP/htdocs3/nettuts/PHP/PDO 用于数据库 在第 20 行访问/mysql_pdo_connect.php。”
我已经“用谷歌搜索”并在这里找到了部分答案。所以我希望在这里完成。
TIA
【问题讨论】:
-
您也不应该使用
$php = "htmlspecialchars"变通方法来插入常量。这是可能的,但不是有用的特殊情况之一。而是分解您的 PDO DSN 初始化字符串并正常连接常量:= new PDO("mysql:host=".DB_HOST." dbname=".DB_NAME.";")
标签: php