2012-03-20 3 views
-1

Я пытаюсь добавить массив в таблицу DB, и я получаю эту ошибку: Неизвестный столбец «clock» в «списке полей», смотрящий на ошибку, кажется, что имя элемента распознается как имя поля таблицы ... Вот код:Неизвестный столбец в поле 'list list' error

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 INTO `uzsakymai` SET `field1` = value `field2` = value2 

Это не правильный синтаксис для INSERT. Вам не хватает запятой между полями. Пожалуйста, посмотрите, как вставлять данные в documentation.

Вы можете сделать свой $fields var массив, а затем использовать implode(',', $fields); для создания инструкции.

+0

Синтаксис 'INSERT' ...' SET' отлично работает в mysql. Из документов, которые вы указали * «INSERT ... VALUES и INSERT ... SET формы оператора вставляют строки на основе явно заданных значений». * –

+0

Изменен ответ, чтобы включить то, что не было. Благодарю. – jeremyharris

Смежные вопросы