You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XAMPP环境下使用PDO读取MySQL表无返回无报错如何解决

PDO扩展安装说明

XAMPP默认已启用PDO及PDO_MySQL扩展,无需额外安装。你可以新建包含<?php phpinfo();的文件,在页面中搜索PDO确认扩展运行状态。

无法读取数据的问题修复

你遇到的无返回无报错的问题,是以下几处代码错误共同导致的:

1. SQL关键字拼写错误

你执行的测试SQL语句discribe users拼写错误,MySQL查询表结构的正确关键字是DESCRIBE(可简写为DESC),错误的SQL会导致执行失败。

2. PDO未开启错误抛出模式

默认PDO为静默错误模式,仅连接阶段会抛出异常,SQL执行错误不会主动提示,你需要在初始化PDO时配置错误模式,修改Database类构造函数中创建PDO实例的代码:

self::$con = new PDO($string,DB_USER,DB_PASS, [
    // 开启异常错误模式,SQL执行出错会直接抛出异常
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    // 全局设置默认返回对象类型,后续fetch无需重复指定
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
]);

3. read方法未绑定预处理参数

你预留的$data参数未传入execute方法,后续使用带占位符的预处理语句会无法正常传参,修改read方法中execute对应的代码:

$result = $stm->execute($data);

4. 单例方法返回值类型不统一

当前getInstence方法如果连接已存在返回PDO对象,连接不存在返回Database类实例,类型不一致会导致后续调用异常,修改为统一返回PDO连接对象:

public static function getInstence(){
    if(!self::$con){
        new self();
    }
    return self::$con;
}

提示:该方法名getInstence为拼写错误,标准写法为getInstance,不影响运行但建议修正。

测试验证

修改完成后,将测试代码的SQL修正为正确写法:

$data = $db->read("DESCRIBE users");

执行后即可正常获取users表的结构信息。

内容的提问来源于stack exchange,提问作者user16688701

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:00:03