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

Форум MySQL

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

 

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

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

тема: Мускул и PHP
 
 автор: Ozxar   (12.11.2004 в 02:16)   письмо автору
 
 

как экспортировать этот дамп в базу через PHP скрипт

   
 
 автор: Ozxar   (12.11.2004 в 02:18)   письмо автору
 
   для: Ozxar   (12.11.2004 в 02:16)
 

Извените за флуд, это случайная ошибка, :)

   
 
 автор: glsv (Дизайнер)   (12.11.2004 в 02:45)   письмо автору
 
   для: Ozxar   (12.11.2004 в 02:16)
 

Вам единоразово надо? Или чтобы постоянно из такого дампа импортить.
Единоразово очень легко.

Пишете скрипт подключения к базе:

<?php
    $dblocation 
"localhost";
    
$dbname "ваша база";
    
$dbuser "ваш логин";
    
$dbpasswd "ваш пароль";

$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!
$dbcnx) {
  echo( 
"<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
  exit();
}

if (! @
mysql_select_db($dbname,$dbcnx) ) {
  echo( 
"<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
  exit();
}
?>


И с каждой строкой делаете вот такую вещь.

<?
$query
="CREATE TABLE 'admin' (
  'id' int(11) NOT NULL auto_increment,
  'login' varchar(25) NOT NULL default '',
  'pass' varchar(15) NOT NULL default '',
  'admin' set('disign','news','dipl','users','all') NOT NULL default '',
  'email' varchar(255) NOT NULL default '',
  'never_name' varchar(255) NOT NULL default '',
  'city' varchar(255) NOT NULL default '',
  'status' varchar(255) NOT NULL default '',
  'info' text NOT NULL,
  'site' varchar(255) NOT NULL default '',
  'avatar' varchar(255) NOT NULL default '',
  'realname' varchar(255) NOT NULL default '',
  PRIMARY KEY  ('login'),
  UNIQUE KEY 'login' ('login'),
  UNIQUE KEY 'id' ('id')
) TYPE=MyISAM AUTO_INCREMENT=3 ;"
;
if (
mysql_query($query)) echo "ОК";
else echo 
"Ошибка при выполнении запроса";
?>

Т.е. заносите в переменную $query="--строка---";
И выполняете mysql_query($query)

И так со всеми строками.

   
 
 автор: Ozxar   (13.11.2004 в 23:42)   письмо автору
 
   для: glsv (Дизайнер)   (12.11.2004 в 02:45)
 

а если с дампа?

   
 
 автор: glsv (Дизайнер)   (15.11.2004 в 22:32)   письмо автору
 
   для: Ozxar   (13.11.2004 в 23:42)
 

Тут нужно писать анализатор дампа….
Может быть проще использовать phpMyAdmin? Или он не доступен?

Последовательность действий примерно такая:

1. Читаем файл.
2. Все закомментированные строки отбрасываем

Посмотрел все дампы под рукой…
И вроде бы схема такая: все строки дампа представляют собой отдельные SQL-команды (за исключением команды CREATE).
3. Для отдельных SQL-команд читаем строку в переменную $query и выполняем функцией mysql_query($query)

4. Для команды CREATE схема будет другая.
Если в читаемой строке есть подстрока "CREATE", то читаем следующие строки тех пор пока не встретим символ ; (точка с запятой) и поле этого выполняем mysql_query($query)

PS: можно каждую строку проверять на наличие символа ; (точка с запятой)
Если символа нет, то читать следующую строку (складывая с предыдущей), если символ найден, то выполнять mysql_query()

   
Rambler's Top100
вверх

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