Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中将关联数组插入到oracle表中_Php - Fatal编程技术网

如何在php中将关联数组插入到oracle表中

如何在php中将关联数组插入到oracle表中,php,Php,我把这个数组称为行。当我执行var\u dump($line)时,我得到了以下结果: array(3) { [0]=> array(21) { [0]=> string(1) "3" [1]=> string(1) "1" [2]=> string(1) "0" [3]=> string(8) "49992904" [4]=> string(6) "283699"

我把这个数组称为
。当我执行
var\u dump($line)
时,我得到了以下结果:

array(3) {
  [0]=>
  array(21) {
    [0]=>
    string(1) "3"
    [1]=>
    string(1) "1"
    [2]=>
    string(1) "0"
    [3]=>
    string(8) "49992904"
    [4]=>
    string(6) "283699"
    [5]=>
    string(1) "9"
    [6]=>
    string(3) "610"
    [7]=>
    string(1) "0"
    [8]=>
    string(1) "0"
    [9]=>
    string(1) "0"
    [10]=>
    string(1) "0"
    [11]=>
    string(4) "1142"
    [12]=>
    string(5) "61219"
    [13]=>
    string(5) "21873"
    [14]=>
    string(1) "6"
    [15]=>
    string(1) "2"
    [16]=>
    string(2) "91"
    [17]=>
    string(1) "1"
    [18]=>
    string(4) "1.90"
    [19]=>
    string(4) "11.9"
    [20]=>
    string(8) "15:03:46"
  }
  [1]=>
  array(21) {
    [0]=>
    string(1) "3"
    [1]=>
    string(1) "1"
    [2]=>
    string(1) "0"
    [3]=>
    string(8) "49986779"
    [4]=>
    string(6) "291340"
    [5]=>
    string(2) "11"
    [6]=>
    string(3) "667"
    [7]=>
    string(1) "0"
    [8]=>
    string(1) "0"
    [9]=>
    string(1) "0"
    [10]=>
    string(1) "0"
    [11]=>
    string(4) "1286"
    [12]=>
    string(5) "34464"
    [13]=>
    string(5) "21778"
    [14]=>
    string(1) "4"
    [15]=>
    string(1) "2"
    [16]=>
    string(2) "93"
    [17]=>
    string(1) "1"
    [18]=>
    string(4) "1.28"
    [19]=>
    string(3) "8.0"
    [20]=>
    string(8) "15:04:16"
  }
  [2]=>
  array(21) {
    [0]=>
    string(1) "6"
    [1]=>
    string(1) "1"
    [2]=>
    string(1) "0"
    [3]=>
    string(8) "49986826"
    [4]=>
    string(6) "292415"
    [5]=>
    string(2) "10"
    [6]=>
    string(3) "622"
    [7]=>
    string(1) "0"
    [8]=>
    string(1) "0"
    [9]=>
    string(1) "0"
    [10]=>
    string(1) "0"
    [11]=>
    string(4) "1226"
    [12]=>
    string(5) "31334"
    [13]=>
    string(5) "20273"
    [14]=>
    string(1) "4"
    [15]=>
    string(1) "1"
    [16]=>
    string(2) "94"
    [17]=>
    string(1) "1"
    [18]=>
    string(4) "1.21"
    [19]=>
    string(3) "7.5"
    [20]=>
    string(8) "15:04:46"
  }
}
  • 我需要将今天的日期附加到每个数组中的第20个元素(需要设置为日期和时间)

    $now=新日期时间(空,新日期时区(“美国/纽约”); $today=$now->format('Y-m-d')

  • 我试过这个:

    foreach ($lines as $key => $value){
       $lines[$key][20]=$today . ' ' . $lines[$key][20];
       echo $lines[$key][20];
    
    }
    
    看起来它起作用了


    二,。我需要将其插入到oracle数据库中。我很想知道是否已经有一个方法或函数可以将
    行中的每个数组插入表中。

    为了序列化数组以插入数据库,可以使用,或者;我个人喜欢
    json\u encode()
    ,因为它更容易阅读和修改

    这两个函数都将数组等转换为编码字符串,然后可以将其插入到基于文本的数据列中

    执行插入的实际操作。。这实际上取决于您使用的db的版本,因为以下代码仅适用于11g、10g、9i和8i

    请注意,下面的代码并不完全是真实的代码,您必须根据需要对其进行调整,以满足您的需要


    您的数据库是什么类型的?@Daedalus,它是oracle,与其他数据库的工作方式相同。连接到它,看看是否可以进行简单的插入。如果可以,则在foreach上执行插入并进行相应的调试。我不明白你在这里问我们什么,请阅读你自己的问题,站在我们的立场上,你希望我们在哪些方面帮助你?我是在问细节,而不是泛化。@DAny Caissy,我想我要问的是如何用php序列化这个关联数组?作为一个重要的旁白,始终确保在插入之前正确转义数据,以防止注入攻击。
    
    <?php
    
    $str = json_encode($lines); //convert to string.  You should have properly escaped the data prior to this/ran it through some function to escape the data.  We don't want injection attacks to occur
    $conn = oci_connect('username', 'password', 'localhost'); //connect to database
    
    $stmt = oci_parse($conn, "insert into tablename ('column')
              values('$str')"); // construct statement
    oci_execute($stmt, OCI_DEFAULT); // statement executed/data inserted
    
    ?>