检查自己使用的是什么编码,详细看上一篇。
我使用的是gb2312,内容是从代码中history[]提出来放进数据库表中。
在创建表的时候就要以gb2312编码创建
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec("SET NAMES 'gb2312'");
// 检查表是否存在
$stmt = $pdo->query("SHOW TABLES LIKE 'questions_answers_r'");
$tableExists = $stmt->rowCount() > 0;
if (!$tableExists) {
// 如果表不存在,则创建表并添加 timestamp 列
$createTableSQL = "CREATE TABLE questions_answers_r (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
question TEXT,
answer TEXT,
last_modified TEXT,
PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=gb2312";
$pdo->exec($createTableSQL);
} else {
}
} catch (PDOException $e) {
// 处理数据库连接或表创建错误
die("连接失败或执行SQL时出错: " . $e->getMessage());
}