![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taki oto skrypt: [php:1:66c9f24a89]<? include "db_target.php"; ?> <html> <head> <title>Przywracanie kopii bazy danych na serwer</title> <style type="text/css"> body { font-family: "verdana", sans-serif } </style> </head> <body bgcolor="#f4f4f4" link="#000000" alink="#000000" vlink="#000000"> <center> <TABLE WIDTH="80%" border="0" cellspacing="0" bgcolor="#8BA5C5"> <TR> <TD valign="top"> <h4>MySQL php Backup :: Restore</h4><br><br><?php echo"Plik: $file"; ?></TD> </TR> <TR> <TD valign="top"> <?php flush(); $conn = mysql_connect($dbhost,$dbuser,$password) or die(mysql_error()); $filename = $file; set_time_limit(1000); $file=fread(fopen($path.filename, "r"), filesize($path.$filename)); $query=explode(";#%%n",$file); for ($i=0;$i < count($query)-1;$i++) { $baza = mysql_db_query($dbname,$query[$i],$conn) or die(mysql_error()); } include("config.php2"); if($baza){ echo "<table width="90%"><tr><td align="center">"; echo "ilość przetworzonych wierszy: ".mysql_affected_rows(); echo "<b>GOTOWE!</b><br><br></td></tr></table>"; } else{ echo"<table width="90%"><tr><td align="center">NIE GOTOWE!<br>"; echo "Plik: $filename" . mysql_error(); echo"<br></td></tr></table>"; } exit; ?> </TD> </TR> </TABLE> </center> </body> </html> ?>[/php:1:66c9f24a89] Skrypt ten powinien importować do bazy danych plik .sql, jednakże nie robi tego. Po długich rozmyślaniach doszedłem do wniosku, że błąd leży gdzieś w okolicach explode(...), gdyż za każdym razem count($query) zwraca 1, pętla poniżej się nie wykonuje (1-1 = 0), i import do bazy danych nie zostaje wykonany ![]() W pliku db_target.php znajdują się jedynie dane bazy danych. -------------------- Wieczność jest bardzo nudna, szczególnie pod koniec - Woody Allen
/home/env: Apache 2.2 | PHP 5.2 | MySQL 5.1 | FreeBSD 8.0 | NetBeans 6.8 | symfony 1.4 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, moze sie myle, ale wydaje mi sie, ze explode dzieli zmienna wg. tego wzorca co podales, czyli wg ;#%%n dlatego jest tylko jeden element.
Jak chcesz dzielic wg dowolnego z tych znakow, to uzyj split -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Plik .sql, który chcę zaimportować wygląda jak każdy inny plik .sql, z wyjątkiem tego, że na końcu każdej linii są znaki #%%. Plik, który chcę zaimportować, ma 3 linijki (3 polecenia MySQL), a skrypt wykrywa tylko jedną linijkę
![]() -------------------- Wieczność jest bardzo nudna, szczególnie pod koniec - Woody Allen
/home/env: Apache 2.2 | PHP 5.2 | MySQL 5.1 | FreeBSD 8.0 | NetBeans 6.8 | symfony 1.4 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Witam!
Mam taki oto skrypy: [php:1:5eabeb1970]<? $file=fread(fopen($path.filename, "r"), ?>[/php:1:5eabeb1970] Nie zapomniało Ci się w tym miejscu wstawić $ przed filename? pewnie plik się w ogóle nie otwiera i nie wczytuje więc explode nie ma co rozbijać. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 11.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
z tego co ja tam widze to fread siedzi...
-------------------- Pozdrawiam,
Michał K. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat Witam!
Mam taki oto skrypt: [php:1:2e16069dcb]<? $file=fread(fopen($path.filename, "r"), ?>[/php:1:2e16069dcb] Nie zapomniało Ci się w tym miejscu wstawić $ przed filename? pewnie plik się w ogóle nie otwiera i nie wczytuje więc explode nie ma co rozbijać. Poprawiłem. Dalej nic... ![]() -------------------- Wieczność jest bardzo nudna, szczególnie pod koniec - Woody Allen
/home/env: Apache 2.2 | PHP 5.2 | MySQL 5.1 | FreeBSD 8.0 | NetBeans 6.8 | symfony 1.4 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Poprawiłem. Dalej nic...
![]() To wypisz sobie jakiegoś debuga z zawartością $file, czy napewno dobrze się wczytuje a najlepiej poślij go na forum, żeby było na czym to obejrzeć dokładniej. ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:034989f3c5]DROP TABLE IF EXISTS sys_is;#%%
CREATE TABLE sys_is ( 1 varchar(255) DEFAULT 'a' NOT NULL, 2 varchar(255) DEFAULT 'b' NOT NULL, 3 varchar(255) DEFAULT 'c' NOT NULL, 4 varchar(255) DEFAULT 'b' NOT NULL, 5 varchar(255) DEFAULT 'a' NOT NULL );#%% INSERT INTO sys_is VALUES ('a','b','c','b','a');#%% [/sql:1:034989f3c5] -------------------- Wieczność jest bardzo nudna, szczególnie pod koniec - Woody Allen
/home/env: Apache 2.2 | PHP 5.2 | MySQL 5.1 | FreeBSD 8.0 | NetBeans 6.8 | symfony 1.4 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dobra, poradziłem sobie z tym. Ale teraz mam inny problem. Mam takie oto zapytanie MySQL:
[sql:1:de7aab153f]CREATE TABLE sys_is ( 1 varchar(255) DEFAULT 'a' NOT NULL, 2 varchar(255) DEFAULT 'b' NOT NULL, 3 varchar(255) DEFAULT 'c' NOT NULL, 4 varchar(255) DEFAULT 'b' NOT NULL, 5 varchar(255) DEFAULT 'a' NOT NULL );[/sql:1:de7aab153f] A MySQL zwraca odpowiedź: Kod Something is wrong in your syntax obok '1 varchar(255) DEFAULT 'a' NOT NULL, 2 varchar(255) DEFAULT' w linii 2
Gdzie jest błąd? -------------------- Wieczność jest bardzo nudna, szczególnie pod koniec - Woody Allen
/home/env: Apache 2.2 | PHP 5.2 | MySQL 5.1 | FreeBSD 8.0 | NetBeans 6.8 | symfony 1.4 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hej
Cytat Dobra, poradziłem sobie z tym. Ale teraz mam inny problem. Mam takie oto zapytanie MySQL:
Kolumny mysql myli z liczbami. Musisz dodac ``.
[sql:1:c26c6a301c]CREATE TABLE sys_is ( 1 varchar(255) DEFAULT 'a' NOT NULL, 2 varchar(255) DEFAULT 'b' NOT NULL, 3 varchar(255) DEFAULT 'c' NOT NULL, 4 varchar(255) DEFAULT 'b' NOT NULL, 5 varchar(255) DEFAULT 'a' NOT NULL );[/sql:1:c26c6a301c] A MySQL zwraca odpowiedź: Kod Something is wrong in your syntax obok '1 varchar(255) DEFAULT 'a' NOT NULL, 2 varchar(255) DEFAULT' w linii 2
Gdzie jest błąd? [sql:1:c26c6a301c]CREATE TABLE sys_is ( `1` varchar(255) DEFAULT 'a' NOT NULL, `2` varchar(255) DEFAULT 'b' NOT NULL, `3` varchar(255) DEFAULT 'c' NOT NULL, `4` varchar(255) DEFAULT 'b' NOT NULL, `5` varchar(255) DEFAULT 'a' NOT NULL );[/sql:1:c26c6a301c] Pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie, pomogło. Dzięki kurtz!
![]() -------------------- Wieczność jest bardzo nudna, szczególnie pod koniec - Woody Allen
/home/env: Apache 2.2 | PHP 5.2 | MySQL 5.1 | FreeBSD 8.0 | NetBeans 6.8 | symfony 1.4 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:23 |