PHP使用foreach获取数组值
PHP如何获取数组值:PHP使用foreach获取数组值,php,Php,PHP如何获取数组值: <?php print_r($_POST['cb']); Array ( [0] => Array ( [id] => 1 [tipe] => read ) [1] => Array ( [id] => 1 [tipe] => update ) [2] => Array ( [id] => 2
<?php
print_r($_POST['cb']);
Array
(
[0] => Array
(
[id] => 1
[tipe] => read
)
[1] => Array
(
[id] => 1
[tipe] => update
)
[2] => Array
(
[id] => 2
[tipe] => update
)
)
?>
$getID
表示数组中的[id],而$getTipe
表示数组中的[tipe]
可以这样做吗?如果数组有100个索引,则查询将执行100次以插入数据。尽量避免此类操作,请参见下面的答案,您可以在单个查询中插入数据,代码未经测试,您可以根据需要进行调整
$dataArray = $_POST['cb'];
$queryData = null;
foreach($dataArray as $data){
$queryData[]="(".$data['id'].", '".$data['tipe']."')";
}
$values = implode(',',$queryData);
$qInsert = oci_parse("INSERT INTO TDATA(ID, CHKSTATUS) VALUES ".$values."");
oci_execute($qInsert);
我希望这可以节省您的数据库操作开销我建议您:根据数组大小,不要执行N次查询。在一个查询中插入所有数据,谢谢您的回答。尝试了您的代码,但仅当我只选择1个复选框时,它才会保存。如果更多,则不会保存到数据库。请给出建议。尝试回显“INSERT-INTO-TDATA(ID,CHKSTATUS)VALUES”。$VALUES。“&查看完整的查询这是当我回显时,INSERT-INTO-TDATA(ID,CHKSTATUS)VALUES('1','create'),('1','update'),('2','read'),('2','delete'),顺便说一句,我正在使用Oracle如果ID字段是主键,此查询将只插入一个值,由于重复的ID值“1”
$dataArray = $_POST['cb'];
$queryData = null;
foreach($dataArray as $data){
$queryData[]="(".$data['id'].", '".$data['tipe']."')";
}
$values = implode(',',$queryData);
$qInsert = oci_parse("INSERT INTO TDATA(ID, CHKSTATUS) VALUES ".$values."");
oci_execute($qInsert);