MySQL запрос для апдейта нескольких строк таблицы

SparcoCF

Новичок
MySQL запрос для апдейта нескольких строк таблицы

Всем привет, есть у меня в базе таблица, в которой есть три столбца: id name price она заполнена на 10 тысяч строк что составляет прайс лист.
Соответственно прайс нужно обновлять, делать это нужно из файла CSV
Файл СSV имеет следующую структуру:

1;aa1 000 23 33 31;75.2
2;aa1 228 48 55 02;75.58
3;aa2 21 35 01 98;75.35


импорт осуществляется следующим скриптом:
PHP:
<?
 $link = @mysql_pconnect("localhost", "root", "");
        if ($link) {
            mysql_select_db("csv");
        } else {
            exit("Unable to connect to database.  Please try again later.\n");
        }  
 
$data=file('price.csv');
if (is_array($data))
  {
   foreach ($data as $string)
      {
       $temp=explode(";",$string);
       $query="UPDATE price SET id='$temp[0]',Name='$temp[1]',Price='$temp[2]' WHERE id"; 
       $result=mysql_query($query);
      } 
   } die (mysql_error());
?>
Вопрос: Как должен выглядеть запрос $query именно WHERE что бы апдейтились все строки соответствующими данными из файла CSV
 

hash

Guest
$query="UPDATE price SET Name='$temp[1]',Price='$temp[2]' WHERE id=".$temp[0];
 

SparcoCF

Новичок
hash
Спасибо БОЛЬШОЕ !! Вот решение:
$query="UPDATE price SET id='$temp[0]',Name='$temp[1]',Price='$temp[2]' WHERE id='$temp[0]'";
 

weregod

unserializer
SparcoCF,
1) если поле name будет содержать символ ";", Ваш "парсер CSV" будет работать неверно
2) если в CSV-файле будет 10 миллионов строк, скрипту может не хватить памяти

используйте fgetcsv
 

SparcoCF

Новичок
weregod
Спасибо weregod
А могли бы вы показать хоть какой то маленький пример с использованием fgetcsv ?
 
Сверху