ThinkPHP5报错找不到表或视图

使用ThinkPHP5框架,包括基于ThinkPHP5框架开发的第三方框架操作数据库时,有时会提示SQLSTATE[42S02]: Base table or view not found: 1146 Table 'testdb.test_table' doesn't exist

即找不到表或视图。

首先检查下数据库中是否存在该表,一般情况下是因为表确实不存在。

但是如果检查后发现数据库中有这张表,但是还报这个错误,那就很奇怪了。

笔者最近就遇到了这个问题,之前还遇到过报错字段不存在,都是同样的问题。

切换PHP版本、数据库版本、使用不同的数据库类去操作都报同样的错误,看来是真的不存在!

那问题到底出在哪儿呢?

其实也很简单,创建表或字段时有特殊字符写进去了!比如制表符、回车符,Del等无法用肉眼甄别的字符。虽然看上去就是查询时用的表或字段,但实际上它在数据库中的名称不是看到的那样!

这种情况下的解决办法

  1. 重命名表或字段
  2. 删除表或字段,重建即可。

Leave a Comment

豫ICP备19001387号-1