mysql 一个非常奇怪的问题

2019-07-14 22:18:45 +08:00
 JasonTsang

mysql 版本 5.7 程序框架:thinkphp5

问题描述:

插入数据库 在数据库中已看到这条数据 ,而且在数据库管理软件中 能查询得到。但在 TP5 中 查询不了这条数据。但用数据库软件插入的数据 在 TP5 中却能查询

换句话说 插入的时候 ,数据库中有数据,但 TP5 无法查询这条数据

4460 次点击
所在节点    PHP
11 条回复
ob
2019-07-14 22:20:19 +08:00
缓存?
bsns
2019-07-14 22:21:31 +08:00
接楼上,flush 一下试试?
qiayue
2019-07-14 22:51:12 +08:00
事务没提交
whoami9894
2019-07-14 22:54:36 +08:00
把 tp5 的缓存目录删了再查
akira
2019-07-14 23:01:37 +08:00
连的不是同一个库?
xd314697475
2019-07-14 23:49:12 +08:00
缓存模式关掉

thinkphp 会默认打开模板缓存,
debug.php
'TMPL_CACHE_ON'=>false, // 默认开启模板缓存

convention.php
'TMPL_CACHE_ON' => false, // 默认开启模板编译缓存 false 的话每次都重新编译模板
'ACTION_CACHE_ON' => false, // 默认关闭 Action 缓存
'HTML_CACHE_ON' => false, // 默认关闭静态缓存

还有一个查询缓存,在设置的缓存有效期之内不会再次进行数据库查询操作,而是直接获取缓存中的数据
解决方法:不要用下面的 cache 或者把 cache 时间改短
Db::table('think_user')->where('id=5')->cache(true)->find();

如何把这些全关了
debug.php
APP_DEBUG=>true
DB_FIELD_CACHE=>false
HTML_CACHE_ON=>false
ckylolo
2019-07-14 23:56:21 +08:00
你能手动查到这条数据,那就不可能是数据库的问题,
可能性必然在应用层:基本上就是缓存问题,
看服务端返回,6 楼说法应该可以解决你的问题了
如果服务端也是正常的,那么就是前端的问题了,
比较初级,
估计已搞定
niaobulashi
2019-07-15 09:53:04 +08:00
commit 或者 rollback 一下
wyieeLu
2019-07-15 10:01:52 +08:00
尝试一下提交事务
gouchaoer
2019-07-15 11:31:27 +08:00
单步调试?
gouchaoer
2019-07-15 11:31:34 +08:00
xdebug

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582928

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX