2012-03-20 9 views
-1

DBテーブルに配列を追加しようとしていますが、このエラーが発生します: 'フィールドリスト'に 'clock'という不明な列があり、その項目名がテーブルのフィールド名は...ここでは、コードは次のとおりです。'フィールドリスト'エラーで不明な列

include("includes/functions.php"); 

    function addItem($items) { 
        $count = 0; 
        $fields = ''; 

        foreach($items as $laukelis => $verte) { 
        if ($count++ != 0) $fields .= ', '; 
        $laukelis = mysql_real_escape_string($laukelis); 
        $verte = mysql_real_escape_string($verte); 
        $fields .= "`$laukelis` = $verte"; 
       } 

        $query = "INSERT INTO `uzsakymai` SET $fields;"; 
        $result=mysql_query($query) or die(mysql_error()); 

        } 
    if (isset ($_POST['submit'])){ 
     if($_POST["name"] && $_POST["surname"] && $_POST["address"] && $_POST["mail"] && $_POST["tel"]) 
     { 
      $max=count($_SESSION['cart']); 
      for($i=0;$i<$max;$i++){ 
      $pid=$_SESSION['cart'][$i]['productid']; 
      $ppid=get_product_id($pid); 
      $ppav=get_product_name($pid); 
      $price=get_price($pid); 
      $date=date('Y-m-d'); 
      $oid=mysql_insert_id(); 
      $cid=mysql_insert_id(); 
      ?> 
      <? 
      $items = array('id' => 'NULL', 
         'pirkejo_id' => $cid, 
        'prod_id' => $ppid, 
        'produkto_pav'=> $ppav, 
        'kaina' => $price, 
        'data' => $date 
        ); 

        addItem($items) 
        ?> 
<?     
      } 
+0

なぜ実行されたクエリを投稿しないのですか?それはここで最も有用なデバッグ情報です。 – Brad

+0

AFAIK、 'INSERT INTO \' uzsakymai \ 'SET $ fields;'が間違っています。 – hjpotter92

答えて

0

あなたのSQLは、これは、INSERTのための適切な構文ではありません。この

INSERT INTO `uzsakymai` SET `field1` = value `field2` = value2 

のようなものになってしまいますように見えます。フィールド間にカンマがありません。データの挿入方法についてはdocumentationをご覧ください。

代わりに$fields varを配列にして、implode(',', $fields);を使用してステートメントを作成することができます。

+0

'INSERT' ...' SET'構文はmysqlで正常に動作します。 * "INSERT ... VALUESとINSERT ...ステートメントのSETフォームは明示的に指定された値に基づいて行を挿入します。" * –

+0

欠落した内容を含むように答えを修正しました。ありがとう。 – jeremyharris