Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Import в БД

6.0K
08 ноября 2008 года
Tramp
71 / / 25.07.2006
Всем привет!
Пишу скрипт для того чтобы импортировать данные из *.sql файла, пожалуйста посоветуйте как лучше, вот моя поделка:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Import</title>
</head>
<body>
<?php
global $filename;
$filename = 'myfile.sql';
$_HOST = 'localhost';
$_USER = '';
$_PASS = '';
$_DB = '';

echo('<span style="font-weight: bold;">Import *.sql!</span><br>');

$db = mysql_connect($_HOST,$_USER,$_PASS);
if (empty($db)) {
    die("Ошибка соединения".mysql_error());
    }
mysql_select_db($_DB);
include ("mysql_create.php");
mysql_close($db);
?>
</body>
</html>


Код:
<?php
$i=0;
$j=0;
 
function find_com($str)
{
    if ( stristr($str, '/*') )
    {
      return true;
    }
  return false;
}

function find_com_end($str)
{
  $pos =  strrpos($str, '*/');
  if ($pos == false)
  {
    return false;
  }
  else
  {  
    $i = 0;
    $j = 0;
    return true;
  }
}

/*
function find_cont($str)
{
  $i = $i + substr_count($str, '(');
  $j = $j + substr_count($str, ')');
  //if ( ( stristr($str, ')') && stristr($str, ';') ) && ( strrpos($str, ';') > strrpos($str, ')') ) ) $j--;
}
*/


function find_query($str)
{
  $s[1] = 'CREATE TABLE';
  $s[2] = 'INSERT INTO';
  $s[3] = 'SET';
  //strpos(в чём искать, что искать);
  if ( stristr($str, '--') )
    return false;
  for($i = 1; $i <= 3; $i++)
  {
    $pos = stristr($str, $s[$i]);
    if ($pos)
    {
      return true;
    }
  }
  return false;
}

function end_query($str)
{
  //if (substr($str, -1) == ';')
  if ( strrpos($str, ';') < strrpos($str, ')') ) return false;
  $pos =  strrpos($str, ';');
  if ($pos == false)
    return false;
  else
    return true;
}


$handle = fopen($filename, "r");
$newquery = '';
$contents = '';
$q = false;
$c = false;

while (!feof($handle)) {
  $contents = fgets($handle);//Считать строку
  //find_cont($contents);
  if (find_com($contents))
    $c = true;
   if (find_query($contents) && !$c)
     $q = true;
   if ($q && !$c)
     $newquery .= $contents;
   if (find_com_end($contents))
     $c = false;
   if (end_query($contents))
   {
     $q = false;
     if ($newquery <> '')
      {
       echo ($newquery.'<br><br>');
       mysql_query($newquery);
      }
     $newquery = '';
   }
}

fclose($handle);
?>
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог