【发布时间】:2018-06-09 19:30:35
【问题描述】:
我有很多复选框,选中后将它们推送到数组并将值传递到下一页。下一页需要提交选定的提交,我应该将一个数组传递到下一页并插入到 Oracle DB。在print_r 上我可以看到我的数组的问题,但是在插入时,我得到了错误Notice: Array to string conversion in ...。
这是我如何将数据传递到下一页并接收它的代码:
我做错了什么?
附言我写了一个函数来解析数据并插入,并且需要像这个例子一样传递数据(1,2,1,1*5,5,6,2*7,3,4,5)
这是我的打印数据Array ( [0] => 6 [1] => 1 [2] => 1 [3] => 5* [4] => 10 [5] => 1 [6] => 1 [7] => 5* [8] => 14 [9] => 1 [10] => 1 [11] => 5* [12] => 18 [13] => 1 [14] => 1 [15] => 5* )
if(some condition) {
//here i check checkboxes, pshing values to array
} else if(isset($_POST["arrayforfirst"])){
$arrayforfirst = $_POST['arrayforfirst'];
$arrayforfirst2 = unserialize(base64_decode($arrayforfirst));
print_r($arrayforfirst2);
$query = "my insert query";
$stmt1 = oci_parse($my_connection, $query);
oci_execute($stmt1);
} else {
$newarray = array();
foreach($_POST['myarray'] as $id => $value) {
$pp = explode(",", $value);
array_push($newarray, $pp[2], $pp[3], $pp[4], $pp[1].'*');
}
echo '<input type="hidden" name = "arrayforfirst" value="'.base64_encode(serialize($newarray)).'" />';
}
【问题讨论】:
-
Array to string conversion通知发生在哪一行,该行的代码是什么? -
它不是重复的。原因©可以将其打印到页面,但不能将其插入数据库
-
@ariefbayu 上线`$query = "insert into web.test values('".$arrayforfirst2 ."')`
-
这就是你的线索:代码期望
$arrayforfirst2为string,而不是array。为什么?因为你想连接它(通过使用.(点)符号)。