php Pdo连接数据库插入一条数据出现两条的bug

发布于 2022-09-04 12:16:01 字数 321 浏览 8 评论 0

1,我在使用pdo连接mysql的时候,插入数据但是出现两条一样的数据:

$dsn    =   sprintf("mysql:host=%s;dbname=%s;charset=utf8", $host, $dbName);
$_dbHandle    =   new PDO($dsn, $user, $password, $option);
$sql = "insert into `name` (`age`) values (18)";
$_dbHandle->exec($sql);
//这样插入一次数据,但是数据库会存在两条数据;

求助,求助!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我ぃ本無心為│何有愛 2022-09-11 12:16:01

这个问题已经找到答案了~原因如下:

由于nginx的 rewrite问题,在location {}模块中,错误的语法导致项目被重复执行了两次,但是由于是同样的执行操作,我们所有的断点调试都无法检出这个问题;

静若繁花 2022-09-11 12:16:01

建议改成PDO预处理参数化查询:

$sql = "insert into `name` (`age`) values (18)";
$stmt = $_dbHandle->prepare($sql);
$stmt->execute();
echo $stmt->rowCount(); //查询中受影响(改动)的行数,插入失败时为0
echo $_dbHandle->lastInsertId(); //插入的自增ID,插入失败时为0
流殇 2022-09-11 12:16:01

亲说执行了两遍嘛?首先你这点代码我看不出来啥。 用debug_backtrace函数检查一下,试试,另外连接数据库我们都用 Singleton 单例(单元素)模式实现 来实现的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文