Loading:

PHP 7 News & Updates v7.0 - 7.4 - book

Zapisywanie wyników zapytania do pliku tekstowego po stronie MySQL

Polecenie SELECT ... INTO OUTFILE 'nazwa_pliku' zapisuje zwracane przez SELECT wiersze do pliku o nazwie nazwa_pliku. Plik jest tworzony na serwerze z bazą danych, więc dany użytkownik musi mieć odpowiednie prawa do zapisywania plików na serwerze.

 

Plik o nazwie nazwa_pliku nie może wcześniej istnieć, co zabezpiecza chociażby takie pliki jak /etc/passwd przed zniszczeniem ich zawartości. Wyrażenie SELECT ... INTO OUTFILE jest przeznaczone głównie do szybkiego zapisania zawartości tablicy w pliku na serwerze bazodanowym. Jeśli zamierzamy wyniki wykonania polecenia SELECT zapisać w pliku na serwerze klienta, to należy posłużyć się raczej komendą z listingu 1.0.

 

Możemy użyć odpowiednich opcji w poleceniu SELECT ... INTO OUTFILE, mianowicie:

 

  • FIELDS TERMINATED BY
  • ENCLOSED BY
  • ESCAPED BY
  • LINES TERMINATED BY

 

Przykład takiego wykorzystanie jest widoczny na Listingu 2.0.

 

  • Uwaga! Jakikolwiek plik utworzony w wyniku wydania polecenia INTO OUTFILE lub INTO DUMPFILE jest tworzony z prawami pisania w nim przez wszystkich użytkowników systemu na serwerze bazodanowym.

 

  • Jeśli zamiast SELECT ... INTO OUTFILE użyjemy polecenia SELECT ... INTO DUMPFILE MySQL zapisze w pliku tylko jedną długą linię, a więc bez jakichkolwiek znaków końca linii czy kolumny. Jest to użyteczne w przypadku używania danych typu BLOB.



Napisz Artykuł

Listing

--Listing 1.0
   mysql -e "SELECT ..." > nazwa_pliku
--Listing 2.0: zapisuje wyniki z tabeli test_tab do pliku o nazwie wynik.txt, pola są oddzielane przecinkiem, dodatkowo każda wartośc jest w podwójny cudzysłowie oraz znaki łamiące linie to \n
SELECT a,b,a+b INTO OUTFILE '/tmp/wynik.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_tab;


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5084

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38323
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors