![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 11.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Znalazłem w sieci taki kod do tworzenia kopii bazy danych: CODE <?php $link = mysql_connect('127.0.0.1', 'root', 'haslo') or die('Connection error : ' . mysql_error()); mysql_select_db('nazwa bazy') or die('Could not select database'); $sql = ''; $crlf = "\r\n"; $time = date('Y m d, H:i', time()); $sql .= '#' . $crlf; $sql .= '# Zrzut bazy danych ' . $crlf; $sql .= '# Wygenerowano: ' . $time . $crlf; $sql .= '#' . $crlf . $crlf; $res = mysql_list_tables('nazwa bazy'); while($row = mysql_fetch_array($res)) { $table_name = $row[0]; $table_fields = array(); $sql .= '#' . $crlf; $sql .= '# Struktura tabeli ' . $table_name . $crlf; $sql .= '#' . $crlf; $sql .= 'DROP TABLE IF EXISTS ' . $table_name . ';' . $crlf; $sql .= 'CREATE TABLE ' . $table_name . ' ( ' . $crlf; /* Generujemy strukture tabeli. Najpierw wyciagamy pola */ $res2 = mysql_query('SHOW FIELDS FROM ' . $table_name); while($fields = mysql_fetch_array($res2)) { $sql .= ' '; $sql .= $fields['Field'] . ' ' . $fields['Type']; if (!empty($fields['Default'])) { $sql .= 'DEFAULT \'' . $fields['Default'] . '\''; } if ($fields['Null'] != 'Yes') { $sql .= ' NOT NULL'; } if (!empty($fields['Extra'])) { $sql .= ' ' . $fields['Extra']; } $sql .= ',' . $crlf; $table_fields[] = $fields['Field']; } $index = ''; /* Teraz wyciagamy pola typu KEY */ $res2 = mysql_query('SHOW KEYS FROM ' . $table_name); while ($keys = mysql_fetch_assoc($res2)) { $kname = $keys['Key_name']; if(($kname != 'PRIMARY') && ($keys['Non_unique'] == 0)) { $kname = 'UNIQUE|' . $kname; } $index[$kname] = array(); $index[$kname][] = $keys['Column_name']; } while(list($n, $columns) = @each($index)) { if ($n == 'PRIMARY') { $sql .= ' PRIMARY KEY (' . implode($columns, ', ') . ')'; } elseif (substr($n, 0, 6) == 'UNIQUE') { $sql .= ' UNIQUE ' . substr($n, 7) . ' (' . implode($columns, ', ') . ')'; } else { $sql .= ' KEY ' . $n . ' (' . implode($columns, ', ') . ')'; } $sql .= $crlf; } $sql .= ');' . $crlf; $sql .= $crlf . $crlf; $sql .= '#' . $crlf; $sql .= '# Dane z tabeli ' . $table_name . $crlf; $sql .= '#' . $crlf; /* Mamy juz strukture, wiec teraz czas wyciagnac dane z tabeli */ $d_res = mysql_query('SELECT * FROM ' . $table_name); while ($data = mysql_fetch_array($d_res)) { $sql .= 'INSERT INTO ' . $table_name . ' (' . implode(', ', $table_fields) . ') VALUES('; $field_count = count($table_fields); $f_data = array(); for ($i = 0; $i < $field_count; $i++) { $f_data[] .= '\'' . $data[$i] . '\''; } $sql .= implode(', ', $f_data); $sql .= ');' . $crlf; } $sql .= $crlf . $crlf; } $file = fopen('test.sql', 'w'); fwrite($file, $sql); fclose($file); ?> Jak wyeksportowałem bazę do pliku, to nie mogę jej importować bo w treści sa różne zanaki specjalne typu ' czy " . Moje pytanie brzmi: czy da się do tego kodu wprowadzić obsługę snaków specjalnych? Jeśli tak, to proszę o sugestie :-) Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 08:48 |