我有两个名为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']."',",
但是我收到错误的错误整数值:''列错误。 建议我这个。
答案 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)
,很难分辨,但很可能是问题是没有选中复选框。
复选框仅在选中时发送给服务器,因此,如果您不选中Active
或Require
,则最终会得到一个$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;