当前位置: 代码迷 >> 综合 >> SQLSTATE[42S22]: Column not found: 1054
  详细解决方案

SQLSTATE[42S22]: Column not found: 1054

热度:88   发布时间:2023-11-25 22:16:36.0

问题描述

今天在用php yii2.0框架的时候,在执行一个查询的时候,发现突然报出下面的这个个错了

SQLSTATE[42S22]: Column not found: 1054
再回头看看我的代码是怎么写的呢:
$criteria->addCondition("billUnit = " . $model->shoukuankehudanwei);
可能眼尖的大佬们已经看出来哪里出错了吧?不过我因为之前没仔细学sql,所以语法上有问题

问题解析

这是因为字符串常量没有放在引号里面
例如:
select * from 表名 where 列名=字符串常量
以上写法,就会报错
SQLSTATE[42S22]: Column not found: 1054

select * from 表名 where 列名=’字符串常量’
因为用了引号包住了字符串常量,因此就能通过了
如果仍然报错,那么就可能是别的地方有问题啦


解决方法

原来的代码是这样子:
$criteria->addCondition("billUnit = " . $model->shoukuankehudanwei);

那么我们只需要在变量$model->shoukuankehudanwei两边加上引号就可以啦
不过这里要注意一下,因为原来已经有双引号了,我们不能再使用双引号包住字符串了,所以只能使用单引号
修改如下:
$criteria->addCondition("billUnit = ' " . $model->shoukuankehudanwei . " ' ");

  相关解决方案