【发布时间】:2023-01-12 22:05:29
【问题描述】:
我收到错误 SQL Error [1525] [HY000]: Incorrect DATE value: '' 当运行以下查询时:
SELECT * FROM cad_grade_horario WHERE 1=1 AND cg_data = '' AND cg_agenda_status IN ('0', '1') ORDER BY cg_data ASC
我的 MySQL 5.0 机器上的查询有效
但是服务器版本 8.0.20 不起作用
哪些数据库配置更改会导致这种情况?
public function lstCad(){
$query_gradeHorario = "SELECT * FROM cad_grade_horario WHERE 1=1 ".$this->filterRows." ORDER BY cg_data ASC ".$this->limitRows." ";
$myRes = $this->myConn->prepare($query_gradeHorario);
$myRes->execute();
$myVal = $myRes->fetchAll(PDO::FETCH_BOTH);
$this->totRows = count($myVal);
if ($this->totRows>0){
$this->erro = false;
return $myVal;
} else {
$this->erro = true;
return "<font color=red><b>Erro:</b> Nenhum registro encontrado.</font>";
}
$myVal = NULL;
$myRes = NULL;
}
【问题讨论】:
-
您可以共享表架构和样本输入数据吗?
-
如果
cg_data是日期字段,则它不能为空字符串。如果该字段可为空,请改为检查IS NULL。 -
如果我在 php 代码中注释掉这一行 $objLst = new gradeTime(); $objLst->filterRows = " AND cg_data = '{$_POST['cp_data']}' ";有用。
-
请在您的问题中添加额外信息,而不是像这样在评论中添加。
-
我认为 aynber 意味着你需要做:
... AND cg_data IS NULL AND ...。
标签: mysql