Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dziwny błąd
slaug
post 3.08.2004, 10:33:41
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 2.05.2003
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Napisałem sobie coś takiego:

  1. <?php
  2.  
  3. $data=date(&#092;"d-m-Y\");
  4. if (exec(&#092;"C:mysqlbinmysqldump --opt sigma > a:sigma-\".$data.\".sql\")) echo 'lala';
  5. echo 'blad';
  6.  
  7. ?>


co robi mi zrzut całej bazy. Napisałem też skrypt który to potem wczytuje, ale mniejsza o to. Wszystko działa, tzn robi zrzut i potem go poprawnie wczytuje. Czyli tak jak chcę.

Natomiast mój problem jest bardziej prozaiczny. Dlaczego skoro wykonuje sie polecenie exex... nie wyświetla się: lalala: tylko blad.

Jak zrobić sprawdzanie żeby wyświetlał to poprawnie.

Jeżeli możecie to proszę o szybką odpowiedź, najlepiej przed 16 winksmiley.jpg

Będe baaardzo wdzięczny.

pozdrawiam,
Daniel


--------------------
Never underestimate the power of human stupidity!
Go to the top of the page
+Quote Post
BENY_PL
post 3.08.2004, 10:41:54
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.07.2004

Ostrzeżenie: (0%)
-----


"blad" wyświetli ci się zawsze bo nie należy ono do żadnego warunku.
Nie wiem co zwraca
Kod
exec("C:\mysql\bin\mysqldump --opt sigma > a:\sigma-".$data.".sql")

ale podejrzewam że T/F, więc warunek powinien wyglądać tak:

  1. <?php
  2.  
  3. $data=date(&#092;"d-m-Y\");
  4. if (exec(&#092;"C:mysqlbinmysqldump --opt sigma > a:sigma-\".$data.\".sql\")){ echo 'lala';} else {
  5. echo 'blad'; }
  6.  
  7. ?>


--------------------
Drobne awarie nie isnieją, jeżeli miała jednak miejsce drobna awaria, oznacza to, że nie poznałeś jeszcze jej rzeczywistych rozmiarów.
Go to the top of the page
+Quote Post
rogrog
post 3.08.2004, 10:44:13
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


Cytat
exec() executes the given command, however it does not output anything. It simply returns the last line from the result of the command.


co znaczy że funkcja zwraca ostatnią linię z wyniku zwróconego przez komendę... no więc najwyraźniej mysqldump nic nie zwraca (bo przecież kieruje output do pliku) albo i zwraca, ale ostatnia linia jest pusta... w tym wypadku mamy

  1. <?php 
  2. if('') echo 'lala';
  3. else echo 'blad';
  4. ?>


no i kończy się wyświetleniem błędu.

ja ostatnio akrut też robiłem backup i zrobiłem to tak:

  1. <?php
  2. exec ( &#092;"D:FoxServmysqlbinmysqldump --opt -h$db[host] -u$db[login] -p$db[haslo] $db[name]>$filename\" );
  3.  
  4. if( @filesize ( $filename ) > 0 ){
  5.  
  6. echo &#092;"Backup powiódł się.\";
  7.  
  8. } else { 
  9.  
  10. echo &#092;"UWAGA! Backup nie powiódł się!.\";
  11.  
  12. }
  13.  
  14. ?>


filesize() można zastąpić file_exists() ale ja tam miałem też takie problemy że plik był tworzony ale był pusty więc zostawiłem file_size() aby się upewnić że plik coś zawiera smile.gif


--------------------
Go to the top of the page
+Quote Post
slaug
post 3.08.2004, 11:35:27
Post #4





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 2.05.2003
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Wielkie dzięki rogrog. Błąd wynikał dokładnie z tego co napisałeś. Dziwne, bo czytałem o tej funkcji w manualu, czytałem to zdanie, które napisałeś, a jakoś jak pisałem uszło to mej uwagi.

No ale na szczęście odsiecz z twojej strony nadeszła szybciutko i wszystko ładnie działa winksmiley.jpg

Jeszcze raz, wielkie dzięki.


--------------------
Never underestimate the power of human stupidity!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 11:59