整数值不正确:错误

时间:2012-11-28 13:48:55

标签: 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_data(kunnr,$fields)values("."'".$_SESSION['kunnr']."',",

但是我收到错误的错误整数值:''列错误。 建议我这个。

3 个答案:

答案 0 :(得分:2)

 $_POST['active'] = ($_POST['active'] == 'on') ? 1 : 0; 
 $_POST['req]' = ($_POST['req'] == 'on') ? 1 : 0;

 $myVals=$_POST;
 ////
 etc

答案 1 :(得分:0)

如果没有看到完整的sql语句和var_dump($_POST),很难分辨,但很可能是问题是没有选中复选框。

复选框仅在选中时发送给服务器,因此,如果您不选中ActiveRequire,则最终会得到一个$myVals变量不完整的。

为避免这种情况,您可以这样做(对于所有复选框,如果它们应该是整数...):

$myVals["Active"] = isset($_POST['Active']) ? (int) $_POST['Active'] : 0;
// etc.

答案 2 :(得分:0)

您正在将sort_order硬编码为空白字符串:

$myVals["sort_order"]="";

我认为这是问题所在,我认为您的sort_order列是int,所以它正在尝试将空字符串放入int列,如错误所示。

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

$myVals["sort_order"] = 0;