这是config.php文件
<?php
error_reporting(E_ALL ^ E_NOTICE);
/*=========== Database Configuraiton ==========*/
$db_host = "localhost";
$db_user = "test";
$db_pass = "test";
$db_name = "dbtest";
/*=========== Website Configuration ==========*/
$defaultTitle = 'testing';
$defaultFooter = date('Y').' © testing';
?>
以下是对config.php的引用
<?php
require_once "includes/config.php";
require_once "includes/connect.php";
require_once "includes/helpers.php";
header('Cache-Control: max-age=3600, public');
header('Pragma: cache');
header("Last-Modified: ".gmdate("D, d M Y H:i:s",time())." GMT");
header("Expires: ".gmdate("D, d M Y H:i:s",time()+3600)." GMT");
?>
Connect.php位于
之下<?php
/*
The login details are taken from config.php.
*/
try {
$db = new PDO(
"mysql:host=$db_host;dbname=$db_name;charset=UTF-8",
$db_user,
$db_pass
);
$db->query("SET NAMES 'utf8'");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
error_log($e->getMessage());
die("A database error was encountered");
}
?>
有没有人看到此代码的问题?我从connect.php收到错误消息“遇到数据库错误”我需要另一组眼睛,因为我的所有信息看起来都正确,我无法在代码中看到错误。感谢。
答案 0 :(得分:25)
你可以简单地将UTF-8改为utf8 ..
try {
$db = new PDO(
"mysql:host=$db_host;dbname=$db_name;charset=utf8",
$db_user,
$db_pass
);
答案 1 :(得分:1)
直接尝试使用您的凭据,而不是将它们用作变量。
也尝试使用以下方法进行调试:
catch(PDOException $e) {
error_log($e->getMessage());
die("A database error was encountered -> " . $e->getMessage() );
}
让我知道它是否有效。
答案 2 :(得分:0)
之前有效吗?我想你的问题是“localhost”需要是“127.0.0.1”或类似的。
答案 3 :(得分:0)
$ db-&gt; query(...)用于SELECT,您正在设置一个参数。
尝试
$ db-&gt; exec(...)而不是那可以解决。