执行SQL错误!Unknown column ‘uid’ in ‘field list’..

这个bug在网站开发中还是比较常见的,主要表现为Unknown column ‘字段名’ in ‘field list’ 错误。
总结来说就是,可能不小心把某个字段写错了,前端和数据库部分都需要检查一下。

这类错误尤其会出现在自定义表单,或者字段多些的情况下。
比方说你有可能熬夜敲代码,不小心按照了你以往的工作经验去写,
导致漏写或者多写了字段造成。
执行SQL错误怕是代码里有毒
例如,你写了个字段叫a,但是数据库里是叫b,
那也没把a的值传给b
就报错了!

错误实例


1
2
3
4
5
6
7
8
执行SQL错误:Unknown column 'uid' in 'field list',
语句:
INSERT INTO mess (`contact`,`mobile`,`content`,`acode`,
`user_ip`,`status`,`create_user`,`uid`,
`create_time`) VALUES ('姓名','王总',[中间省略掉吧--]
,'2022-08-01 11:37:18')
当前程序:V1.0,
基于操作系统:Linux, WEB应用:nginx/1.18.0

这种像咱们开发用户留言、评论、自定义表单等功能都可能会使用到。
大致解释下来就是,写入数据的时候,某个实体类的字段错了,而且极有可能是uid。
总不可能是记录用户ip地址的字段user_ip错了吧?

那我们先检查下用户前端字段,好像uid没什么问题。
那就可能程序有问题,顺着程序代码去看.
哦吼,真的发现错误:控制器php文件里有这段代码


1
$data['uid'] = session('u_id');

然鹅,在数据库里查询却发现压根儿没有这个字段uid
找半天只看到id字段,所以,很有可能是脑海中以为的是uid而到程序这边写成了uid。


1
2
解决方案就是必须和MySQL数据库中的字段id保持一致。
你一个叫uid,一个叫id,必然出错。

所以,凡事还真不能“我以为”想当然
我以为这样写是对的?
只能细心点,程序里是没那么智能的,只能靠咱们多检查。

好了,记录下问题,方便以后万一遇到可以查验参考。

原文链接:https://letus.top/archives/593.html,转载请注明出处 来自[徐伟轩博客]。

0

评论2

  1. 鸟叔从十年之约来拜访,欢迎回访~~
    鸟叔 2022-09-07 0 回复
    • 好的,一定。
      徐伟轩 2022-09-08 0 回复
  2.    来自天朝的朋友 江苏省无锡市 电信

站点公告

多年收藏,有我所热爱,也有你所需的资源! 我们将不断推出各类知识、教程、资源。欢迎捧场或提出建议。
没有账号?注册  忘记密码?