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

PHP向MySQL写入数据失败排查:代码执行后数据库无变化

MySQL+PHP插入数据无反应的排查与解决

我之前也碰到过几乎一模一样的坑!先给你还原下问题场景,再讲解决办法:

问题描述

我尝试用PHP向MySQL数据库写入数据,运行代码后查看数据库,完全没有任何变化。这段代码只是练习用,没有部署到生产环境:

<?php 
$myPDO = new PDO('mysql:host=localhost;dbname=user_information','root', 'root'); 
$result = $myPDO->query("INSERT INTO user_information (first_name, last_name, type_text) VALUES ('John', 'Doe', 'john@example.com')"); 
?>

奇怪的是,直接在MySQL客户端里执行这条INSERT语句,数据能正常插入,但通过PHP执行就完全没效果。

问题根源与解决

折腾了好一会儿才找到问题:PDO连接字符串里的dbname参数写错了!

原来我把数据库名称和表名搞混了——连接时dbname指定的应该是你要操作的数据库的名字,而我误写成了表名user_information。这就导致PHP连接到了错误的数据库(甚至可能是一个不存在的数据库,默认情况下PDO不会主动抛出这类错误),自然没法把数据插入到目标表中。

修正连接字符串,把dbname改成实际的数据库名称后,问题就解决了。

小建议:开启PDO错误提示

练习的时候建议开启PDO的异常错误模式,这样遇到连接错误、SQL语法错误时,会直接抛出异常,不会默默失败,能帮你更快定位问题:

<?php 
$myPDO = new PDO('mysql:host=localhost;dbname=你的数据库名','root', 'root');
// 开启异常错误模式
$myPDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $myPDO->query("INSERT INTO user_information (first_name, last_name, type_text) VALUES ('John', 'Doe', 'john@example.com')"); 
?>

内容的提问来源于stack exchange,提问作者Jonas.D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:26:31