0

我确实有两个名为 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']."',",

但我收到一个错误,因为整数值不正确:'' 表示列错误。建议我。

4

3 回答 3

3

尝试

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

 $myVals=$_POST;
 ////
 etc
于 2012-11-28T14:04:14.377 回答
0

如果没有看到完整的 sql 语句和 a 就很难判断var_dump($_POST),但最有可能的问题是存在未选中的复选框。

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

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

$myVals["Active"] = isset($_POST['Active']) ? (int) $_POST['Active'] : 0;
// etc.
于 2012-11-28T13:58:50.360 回答
0

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

$myVals["sort_order"]="";

我认为这是问题所在,我认为您的 sort_order 列是int,所以它试图将一个空白字符串放入int列中,正如错误所暗示的那样。

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

$myVals["sort_order"] = 0;
于 2012-11-28T14:01:11.243 回答