За последние 24 часа нас посетили 59880 программистов и 7078 роботов. Сейчас ищут 2911 программистов ...

csv через php в mysql друзья подскажите!

Тема в разделе "MySQL", создана пользователем Enemy, 10 май 2006.

  1. Enemy

    Enemy Активный пользователь

    С нами с:
    6 май 2006
    Сообщения:
    56
    Симпатии:
    0
    Есть код:
    Код (Text):
    1. <?php
    2. include_once("db_fns.php");
    3. function CSV2Array($content, $delim = ';', $encl = '"', $optional = 1)
    4. {
    5.    $reg = '/(('.$encl.')'.($optional?'?(?(2)':'(').
    6. '[^'.$encl.']*'.$encl.'|[^'.
    7. $delim.'\r\n]*))('.$delim.'|\r\n)/smi';
    8.  
    9.    preg_match_all($reg, $content, $treffer);
    10.    $linecount = 0;
    11.  
    12.    for ($i = 0; $i<=count($treffer[3]);$i++)
    13.    {
    14.        $liste[$linecount][] = $treffer[1][$i];
    15.        if ($treffer[3][$i] != $delim)
    16.            $linecount++;
    17.    }
    18.    return $liste;
    19. }
    20.  
    21. // usage for example:
    22. $content = join('',file('test.csv'));
    23. $liste = CSV2Array($content);
    24. //print_r($liste);
    25. $conn = db_connect();
    26.   mysql_select_db("sp_product");
    27.   $query = "INSERT INTO sp_product(`productid`, `catmainid`, `catid`, `brandid`, `sellersid`, `prodname`, 'descsmall', 'descfull', 'price', 'picsmall', 'picbig')
    28.    VALUES('', '".$liste[0]."', '".$liste[1]."', '".$liste[2]."', '".$liste[3]."', '".$liste[4]."', '".$liste[5]."', '".$liste[6]."', '".$liste[7]."', '".$liste[8]."', '".$liste[9]."')";
    29.    $result = mysql_query($query) or die("Invalid query: " . mysql_error().__LINE__.__FILE__);
    30.  
    31. ?>
    выдает ошибку:
    Что не так?

    И такой вопрос как можно улучшить данный код, может у кого есть соображения...
    И правильный csv файл это в котором строка
    "ar1";"ar2";"ar3"...?
    какой тогда правильно задавать формат ячейки в excele?

    Пасиба всем!
     
  2. Mavir

    Mavir Guest

    Если выдает ошибку
    Код (Text):
    1. You have an error in your SQL syntax
    то надо вывести SQL-запрос и искать в нем ошибку
     
  3. Mavir

    Mavir Guest

  4. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. near ''descsmall', 'descfull', 'price', 'picsmall', 'picbig') VALUES
    ясно ведь написано, где ошибка.
    названия полей надо брать не в одинарные кавычки, а в апострофы.