Php 整数值不正确:错误

Php 整数值不正确:错误,php,mysql,Php,Mysql,我有两个名为Active和Require的复选框,我也有一个网格,我必须在其中插入这两个复选框的数据。为此,我编写了insert语句,如下所示: $myVals=$_POST; $fields ="question,active,req,sort_order,dtype"; $myVals["sort_order"]=""; $myVals["dtype"]=""; $sql=makeSQL($myVals,$fields, "INSERT INTO s_additional_

我有两个名为Active和Require的复选框,我也有一个网格,我必须在其中插入这两个复选框的数据。为此,我编写了insert语句,如下所示:

$myVals=$_POST;     
$fields ="question,active,req,sort_order,dtype";
$myVals["sort_order"]="";
$myVals["dtype"]="";
$sql=makeSQL($myVals,$fields,
    "INSERT INTO s_additional_data(kunnr,$fields)values("."'".$_SESSION['kunnr']."',",
但我得到一个错误,列错误的整数值不正确:“”。
请就此向我提出建议。

如果看不到完整的sql语句和
var\u dump($\u POST)
,很难判断,但问题很可能是存在未选中的复选框

复选框仅在选中时发送到服务器,因此如果不选中
Active
Require
,则会得到一个不完整的
$myVals
变量

为了避免这种情况,您可以执行以下操作(对于所有复选框,如果它们应该是整数…):


如果看不到完整的sql语句和
var\u dump($\u POST)
,很难判断,但问题很可能是存在未选中的复选框

复选框仅在选中时发送到服务器,因此如果不选中
Active
Require
,则会得到一个不完整的
$myVals
变量

为了避免这种情况,您可以执行以下操作(对于所有复选框,如果它们应该是整数…):


您正在将
排序顺序
硬编码为空字符串:

$myVals["sort_order"]="";
我认为这就是问题所在,我认为您的排序顺序列是一个
int
,因此它试图将一个空白字符串放入
int
列,正如错误所示

将其设置为
0
或其他整数:

$myVals["sort_order"] = 0;

您正在将
排序顺序
硬编码为空字符串:

$myVals["sort_order"]="";
我认为这就是问题所在,我认为您的排序顺序列是一个
int
,因此它试图将一个空白字符串放入
int
列,正如错误所示

将其设置为
0
或其他整数:

$myVals["sort_order"] = 0;
试一试

试一试


可能需要至少粘贴整个查询,而不是其中的一半。您发布的代码正确吗?我十次中有九次出现这种错误,这是由于将空字符串作为整数处理,但正如其他人所说,如果没有更多的信息,就无法帮助您。可能需要至少粘贴整个查询,而不是其中的一半。您发布的代码正确吗?我十次中有九次出现这种错误,这是由于将空字符串作为整数处理,但正如其他人所说,如果没有更多的信息,就无法帮助您。欢迎来到这里,作为一个一般性的问题-您能为您的代码添加一些解释吗?嗨@Luca,前面的条件是因为复选框返回“on”,如果是check,但不返回数字。谢谢,我的评论只是泛泛的——通常最好为将来可能阅读你答案的人添加一些解释:)你也可以编辑自己的帖子,而不是将其作为评论添加。好好享受吧!欢迎来到SO,作为一个一般性的问题-你能给你的代码添加一些解释吗?嗨@Luca,前面的条件是因为复选框返回“on”,如果是check,但不返回数字。谢谢,我的评论只是泛泛的——通常最好为将来可能阅读你答案的人添加一些解释:)你也可以编辑自己的帖子,而不是将其作为评论添加。好好享受吧!