как импортировать sql файл средствами php ?

Комментарии

  • 16 ноя 2014 11:28
    проще всего открыть через file_get_contents

    потом разбить на строчки используя split по символам точка с запятой; при экспорте обычно команды разделяются именно точкой с запятой;

    далее подключиться к серверу mysql через mysql_connect

    далее последовательно выполнить все команды из файла через mysql_query 
  • 16 ноя 2014 11:28
    еще могут быть строчки с комментариями, надо их игнорировать
  • 16 ноя 2014 12:03
    Буду вам благодарен если вы напишите простой пример
  • 16 ноя 2014 12:06
    Надо чтобы администратор мог  сасастаыателно импортировал sql фаил
  • 16 ноя 2014 12:06
    Заранее спасибо за ответ
  • 16 ноя 2014 13:42
    я не знаю где, кто и как собирается делать импорт, у меня давно написана функция импорта/экспорта для sql, при желании можно улучшить и переделать как надо, да и принцип понятен.
  • Комментарий удалён.
  • Комментарий удалён.
  • Комментарий удалён.
  • Комментарий удалён.
  • 16 ноя 2014 13:48
     public function ExecuteSQLFile($file_name)
        {
            if (file_exists($file_name))
            {
              $sql_list = file_get_contents($file_name);
              $sql_list_array = split("###",$sql_list);
              foreach ($sql_list_array as $key=>$sql_query)
              {
                print "executing = ".$sql_query." ok!
    ";flush();
                $this->Execute($sql_query);
              }
            } else print "file not found";
        }
  • 16 ноя 2014 13:48
     public function SaveTablesAsSQL($tables_array, $file_name)
        {
            if (is_array($tables_array))
            {
                $sql_row_string = "";
                foreach ($tables_array as $key => $table_name)
                {
                    $q = $this->CreateQuery("select * from $table_name"-);
                    if ($q->GetNumRows()<=0) continue;

                    while ($row = $q->GetRow())
                    {
                        $sql_row_string .= utils::RowToInsertSQL($table_name,$row)."";
                    }
                    $sql_row_string .= "";
                }
            }

            if (!file_exists("../export&quot;-)) mkdir("../export&quot;-);
            $f_handle = fopen("../export/".$file_name,"w&quot;-);
            fputs($f_handle, $sql_row_string, strlen($sql_row_string));
            fclose($f_handle);
            return $sql_row_string;
        }