PHP:在SQL中保存多个复选框值

PHP:在SQL中保存多个复选框值,php,sql,checkbox,implode,insert-into,Php,Sql,Checkbox,Implode,Insert Into,我试图创建一个表单,在一条SQL记录中写入多个复选框值 到目前为止,我有一些代码,但我不知道我做错了什么 以下是我拥有的:(我的包含复选框的表格) 内爆会产生以下错误: 警告:incompode()[function.incompode]:在第38行的C:\xamplite\htdocs\LPtest\insert.php中传递的参数无效 如果有人能在我做错的事情上帮助我,我将不胜感激! 提前谢谢你 $\u POST['regio']是一个多维数组。您应该使用foreach从中获取单个值。$\u

我试图创建一个表单,在一条SQL记录中写入多个复选框值 到目前为止,我有一些代码,但我不知道我做错了什么

以下是我拥有的:(我的包含复选框的表格)

内爆会产生以下错误: 警告:incompode()[function.incompode]:在第38行的C:\xamplite\htdocs\LPtest\insert.php中传递的参数无效

如果有人能在我做错的事情上帮助我,我将不胜感激!
提前谢谢你

$\u POST['regio']是一个多维数组。您应该使用
foreach
从中获取单个值。

$\u POST['regio']是一个多维数组。您应该使用
foreach
从中获取单个值。

正如函数名所说的
real\u escape\u string
仅适用于字符串。因此,必须为
$\u POST['Regio']
数组的每个值调用此函数:

$Regio = array();
$adds['Regio'] = "";

if(count($_POST['Regio']) > 0) {
  foreach($_POST['Regio'] as $key=>$value)
    $Regio[] = $conn->real_escape_string($value);
}

$adds['Regio'] = implode(',', $Regio);

这应该是可行的。

正如函数名所说的
real\u escape\u string
仅适用于字符串。因此,必须为
$\u POST['Regio']
数组的每个值调用此函数:

$Regio = array();
$adds['Regio'] = "";

if(count($_POST['Regio']) > 0) {
  foreach($_POST['Regio'] as $key=>$value)
    $Regio[] = $conn->real_escape_string($value);
}

$adds['Regio'] = implode(',', $Regio);

这应该行得通。

您应该使用foreach

HTML代码:

<input id="id1" type="checkbox" name="Regio[id1]"/>
<input id="id2" type="checkbox" name="Regio[id2]"/>
<input id="id3" type="checkbox" name="Regio[id3]"/>

你应该用foreach

HTML代码:

<input id="id1" type="checkbox" name="Regio[id1]"/>
<input id="id2" type="checkbox" name="Regio[id2]"/>
<input id="id3" type="checkbox" name="Regio[id3]"/>

Regio数组上的实数转义字符串的结果是什么?我想,它只是为字符串定义的。。。。它返回字符串,这不是一个可以内爆的数组…第38行是什么代码?Regio数组上的real_escape_字符串的结果是什么?我想,它只是为字符串定义的。。。。它返回字符串,这不是一个可以内爆的数组…第38行是什么代码?最佳做法是
$adds['Regio']=array()在循环+1之前,您也可以在一行中执行
$adds['Regio']=$conn->real\u escape\u string(内爆(',',$\u POST['Regio'])但是您的代码显示了所涉及的处理,我知道您的意思,但是:如果我使用Matei Mihai的代码,我的代码应该在insert语句中是什么
$sql=“INSERT INTO
data`(
nameCom
name
number
email
activiteit
Regio
)值(“$adds['nameCom']”,“$adds['name']”,“,“$adds['number']”,“$adds['email']”,“,“$adds['activiteit']”,“,“$my regiu[”)”像这样?如果你用的是我的密码。。您只需在insert语句中添加
$adds['Regio']
,我仍然在foreach语句中遇到一个错误:警告:在C:\xamplite\htdocs\LPtest\insert.php的第37行为foreach()提供的参数无效。不过,我非常感谢您的帮助,我的任务还有几步呢!最佳做法是
$adds['Regio']=array()在循环+1之前,您也可以在一行中执行
$adds['Regio']=$conn->real\u escape\u string(内爆(',',$\u POST['Regio'])但是您的代码显示了所涉及的处理,我知道您的意思,但是:如果我使用Matei Mihai的代码,我的代码应该在insert语句中是什么
$sql=“INSERT INTO
data`(
nameCom
name
number
email
activiteit
Regio
)值(“$adds['nameCom']”,“$adds['name']”,“,“$adds['number']”,“$adds['email']”,“,“$adds['activiteit']”,“,“$my regiu[”)”像这样?如果你用的是我的密码。。您只需在insert语句中添加
$adds['Regio']
,我仍然在foreach语句中遇到一个错误:警告:在C:\xamplite\htdocs\LPtest\insert.php的第37行为foreach()提供的参数无效。不过,我非常感谢您的帮助,我的任务还有几步呢!
$chkBoxes = $_POST['Regio'];
foreach ($chkBoxes as $key => $val) {
     // you code here
}