2017-02-13 4 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、件名のような)が挿入のために列の部分に行きたい。 (104、テストのような)配列の2番目の部分は、値にあなたの助けを事前に

感謝を行く、私は十分に明確だ願っています.. Nathan30 @

+1

を確かに可能ですが、あなたはそれを書く必要があります。配列をループしてクエリを作成するか、 'array_keys()'と 'array_values()'を使って必要なものを抽出します。 – WillardSolutions

+0

私は2つの配列を持っていて、このようなクエリを、array_keysとarray_valueの使用後にしなければなりません:INSERT INTO tablename($ arrayColumn)VALUES($ arrayValues)? – Nathan30

+0

@ Nathan30あなたはこのようなテーブル( 'res_id')の値(104)に挿入することを意味しますか? –

答えて

1

はこの試してみてください。

<?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 [] = "'"に変更します。 $値。 "'"; あなたの答えは私が必要としたものです – Nathan30

+0

すべてのベスト(y) –