Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заполнение базы из файла
 
 автор: dima2207   (26.05.2008 в 19:47)   письмо автору
 
 

Всем привет !
Заполняю базу из файла sql Читаю из файла с помощью $dat=file('test.sql');
объединяю элементы массива $zip=implode($dat);
выполняю запрос
mysql_query("'".mysql_escape_string($zip)."'") or die("Query failed : " . mysql_error());;
Проблемма в том что конец строки опредиляестся символом \r\n
и получается ошибка

Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''-- \r\n-- Table structure for table `zone_vertices`\r\n-- \r\nDROP TABLE IF EXI' at line 1

и мне никак неудается удалить его .

   
 
 автор: dima2207   (29.05.2008 в 02:35)   письмо автору
 
   для: dima2207   (26.05.2008 в 19:47)
 

Что , неужели никто неподкажет как заполнить бд из файлов ? там их 159 штук и весом 12метров , нехотелось бы в ручную заполнять !

   
 
 автор: Trianon   (29.05.2008 в 09:31)   письмо автору
 
   для: dima2207   (29.05.2008 в 02:35)
 

применить phpMyAdmin (вкладка IMPORT)
либо (если есть доступ) воспользоваться к command-line-клиентом
mysql -u user -ppass dbname < text.sql

   
 
 автор: chexov   (29.05.2008 в 12:01)   письмо автору
 
   для: dima2207   (26.05.2008 в 19:47)
 


<?
  
// подключение к базе//

 // имя файла
  
$filename "test.sql"
  
// открываем его и читаем в буфер 
  
$fp fopen($filename"r"); 
  
$contents fread($fp,filesize($filename)); 
  
fclose($fp); 
  
// Разбиваем содержимое файла по точке с запятой 
  
$quer preg_split("#;[\s]*\r\n)#is"$contents); 
  
// Выполняем SQL-запросы 
  
foreach($quer as $query
  { 
    if(!
mysql_query($query)) exit(mysql_error()); 
  } 
?>

   
 
 автор: Trianon   (29.05.2008 в 14:15)   письмо автору
 
   для: chexov   (29.05.2008 в 12:01)
 

Что Вы будете делать с дампом, в котором точка с запятой присутствует в текстовых полях, как обычный знак препинания?

   
 
 автор: chexov   (29.05.2008 в 15:10)   письмо автору
 
   для: Trianon   (29.05.2008 в 14:15)
 

этого сказано не было:) нужно будет искать другой способ

   
 
 автор: sim5   (29.05.2008 в 19:11)   письмо автору
 
   для: dima2207   (26.05.2008 в 19:47)
 

-- \r\n-- - это же комментарии, все эти строки можно удалить из test.sql, будут указания на другие ошибки.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования