数据库表内容乱码

检查自己使用的是什么编码,详细看上一篇。

我使用的是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());  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值