Php 插入查询成功执行,但数据未插入数据库
我是php的新手,所以如果这个问题太愚蠢,请原谅 我试图使用mysqli在表中插入数据。查询成功执行并返回插入的id。但数据未插入到数据库表中 引发问题的代码: 结果: 执行成功,返回Id:60,数据库中未插入数据Php 插入查询成功执行,但数据未插入数据库,php,mysql,sql,database,mysqli,Php,Mysql,Sql,Database,Mysqli,我是php的新手,所以如果这个问题太愚蠢,请原谅 我试图使用mysqli在表中插入数据。查询成功执行并返回插入的id。但数据未插入到数据库表中 引发问题的代码: 结果: 执行成功,返回Id:60,数据库中未插入数据 3. 试试看: 我和他核实过了 mysqli_query($dbObject->conn, $query) or die('Failed to insert'); $dbObject->conn->query($query); 结果: 执行成功,返回Id:61
3. 试试看: 我和他核实过了
mysqli_query($dbObject->conn, $query) or die('Failed to insert');
$dbObject->conn->query($query);
结果:
执行成功,返回Id:61,数据库中未插入数据
4. 试试看: 使用
MYSQL Querybrowser
结果:
执行成功,数据插入到ID为62的数据库中
5. 试试看: 我用类似的问题检查了StackOverflow中几乎所有的问题,并尝试了几乎所有的答案 结果: 没什么变化,还是一样的问题
在过去的两天里,我一直在讨论这个问题,我尝试了很多方法,但都失败了。请帮帮我,提前谢谢。我终于修好了 在我的代码中,我将
autocommit
设置为false
,这就是问题所在:
$dbObject->conn,->autocommit(FALSE);
我将上述代码更改为:
$dbObject->conn,->autocommit(TRUE);
谢谢,他下面的评论帮助我找到了这个问题
我看到了两个可能的原因:1)我在代码中没有看到提交-如果
您没有在自动提交模式下运行,更改不会发生
坚持。2) 您可以看到可重复读取默认值的效果
用于检查数据的SQL客户端中的隔离级别。跑
在检查数据之前,客户端程序中的提交或回滚。
–一匹没有名字的马
您能否向我们展示您正在执行的实际查询?看起来您的数据正在成功插入。您如何检查它是否已插入数据库?是否有可能您有两个数据库,并且正在连接到另一个数据库,而您认为是这样的?您是否可以访问phpmyadmin之类的工具来直接查看数据库?我看到两个可能的原因:1)我在代码中没有看到提交-如果您没有在自动提交模式下运行,则更改不会持久化。2) 您可以在用于检查数据的SQL客户机中看到可重复读取的默认隔离级别的效果。在检查数据之前,在客户端程序中运行
commit
或rollback
。@DamienBlack:是的,我在phpmyadmin上检查过,也在mysql查询中检查过browser@a_horse_with_no_name:非常感谢。它解决了这个问题。
$dbObject->conn,->autocommit(TRUE);