2017-02-13 71 views
1

我面临一个小问题,我不知道是否可以实现它。让我来解释:用PHP关联数组插入

我有一个关联数组是这样的:

Array 
(
    [res_id] => 104 
    [subject] => Test 
    [type_id] => 503 
    [format] => pdf 
    [typist] => fefe 
    [creation_date] => 2017-02-10 14:27:37.236711 
    [modification_date] => 2017-02-10 14:27:37.236711 
    [fulltext_result] => 1 
    [doc_date] => 2017-02-01 00:00:00 
    [docserver_id] => FASTHD_MAN 
    [path] => 2017#02#0001## 
    [filename] => 0008.pdf 
    [fingerprint] => 
    [filesize] => 84979 
    [status] => VAL 
    [destination] => DSG 
    [priority] => 2 
    [is_multi_docservers] => N 
    [is_frozen] => N 
    [tablename] => res_letterbox 
    [initiator] => COU 
    [dest_user] => ddaull 
    [locker_user_id] => fefefef 
    [locker_time] => 2017-02-13 15:52:25.624521 
    [confidentiality] => N 
    [tnl_path] => 2017#02#0001## 
    [tnl_filename] => 0008.png 
) 

我想知道如果我可以用这个关联数组,为了使一个INSERT,请求?我希望数组的第一部分(如res_id,subject)转到插入的列部分。该阵列的第二部分(如104,测试)将前往值

预先感谢您的帮助,希望我是不够清楚..

+1

当然有可能,但是你需要写下它。循环遍历数组来构建查询,或者使用'array_keys()'和'array_values()'来提取你需要的东西。 – WillardSolutions

+0

因此,我必须有两个数组,并使用array_keys和array_value进行查询:INSERT INTO tablename($ arrayColumn)VALUES($ arrayValues)? – Nathan30

+0

@ Nathan30你的意思是像这样插入表('res_id')的值(104)? –

回答

1

@ Nathan30试试这个:

<?php 
    $arr = array(
     "res_id" => 104, 
     "subject" => "Test", 
     "type_id" => 503, 
     "format" => "pdf", 
     "typist" => "fefe", 
     "creation_date" => "2017-02-10 14:27:37.236711", 
     "modification_date" => "2017-02-10 14:27:37.236711", 
     "fulltext_result" => 1, 
     "doc_date" => "2017-02-01 00:00:00", 
     "docserver_id" => "FASTHD_MAN", 
     "path" => "2017#02#0001##", 
     "filename" =>" 0008.pdf", 
     "fingerprint" => "", 
     "filesize" => 84979, 
     "status" => "VAL", 
     "destination" => "DSG", 
     "priority" => 2, 
     "is_multi_docservers" => "N", 
     "is_frozen" => "N", 
     "tablename" => "res_letterbox", 
     "initiator" => "COU", 
     "dest_user" => "ddaull", 
     "locker_user_id" => "fefefef", 
     "locker_time" => "2017-02-13 15:52:25.624521", 
     "confidentiality" => "N", 
     "tnl_path" => "2017#02#0001##", 
     "tnl_filename" => "0008.png", 
    ); 
    echo "<pre>"; 
    print_r($arr); 
    $column = array(); 
    $values = array(); 
    foreach($arr as $key => $value){ 
     $column[] = $key; 
     $values[] = $value; 
    } 

    now query will be like: 

    "insert into table values(".implode(',', $column).") values (".implode(',', $values).")"; 
+1

完美的感谢很多。我只需要修改$ values [] = $ value;到$ values [] =“'”。 $值。 “'”; 但你的答案是我所需要的 – Nathan30

+0

所有最好的(y) –