如何在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"
}
}
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
?>