0

ActiveとRequireという名前の2つのチェックボックスがあり、この2つのチェックボックスのデータを挿入する必要があるグリッドもあります。そのために、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ステートメントとを確認せずに判断するのは困難ですが、var_dump($_POST)おそらく問題は、チェックされていないチェックボックスがあることです。

Activeチェックボックスは、チェックされている場合にのみサーバーに送信されるため、またはのいずれかをチェックしないRequireと、$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 に答える