Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dziwny błąd
slaug
post
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Będe baaardzo wdzięczny.

pozdrawiam,
Daniel
Go to the top of the page
+Quote Post
BENY_PL
post
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. ?>
Go to the top of the page
+Quote Post
rogrog
post
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
slaug
post
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Jeszcze raz, wielkie dzięki.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.09.2025 - 23:47