【问题标题】:PHP passing array by POST and insert to oraclePHP通过POST传递数组并插入到oracle
【发布时间】: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 ."')`
  • 这就是你的线索:代码期望$arrayforfirst2string,而不是array。为什么?因为你想连接它(通过使用.(点)符号)。

标签: php arrays oracle post


【解决方案1】:

我使用implode 方法并将其转换为字符串。现在它没有显示错误)在我的函数中,我用逗号分隔数组

if(some condition) {
    //here i check checkboxes, pshing values to array
} else if(isset($_POST["arrayforfirst"])){
    $arrayforfirst = $_POST['arrayforfirst'];
    $arrayforfirst2 = unserialize(base64_decode($arrayforfirst));
    $pp = implode(',',$arrayforfirst2);
    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)).'" />';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 2014-04-30
    • 2018-02-17
    • 1970-01-01
    • 2015-04-02
    • 2012-03-08
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多