Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wydrukuj informacje debugowania z procedury składowanej w MySQL

Opcja 1:Umieść to w swojej procedurze, aby wydrukować „komentarz” na standardowe wyjście po uruchomieniu.

SELECT 'Comment';

Opcja 2:Umieść to w swojej procedurze, aby wydrukować zmienną z nią na standardowe wyjście:

declare myvar INT default 0;
SET myvar = 5;
SELECT concat('myvar is ', myvar);

To wypisuje myvar is 5 na standardowe wyjście po uruchomieniu procedury.

Opcja 3, Utwórz tabelę z jedną kolumną tekstową o nazwie tmptable i przesyłaj do niego wiadomości:

declare myvar INT default 0;
SET myvar = 5;
insert into tmptable select concat('myvar is ', myvar);

Możesz umieścić powyższe w procedurze składowanej, więc wszystko, co musisz napisać, to:

CALL log(concat('the value is', myvar));

Co pozwala zaoszczędzić kilka naciśnięć klawiszy.

Opcja 4, Rejestruj wiadomości do pliku

select "penguin" as log into outfile '/tmp/result.txt';

To polecenie jest bardzo surowe. Plik wyjściowy można zapisać tylko w obszarach na dysku, które dają grupie „inne” uprawnienia do tworzenia i zapisu. Powinno zadziałać, zapisując go do katalogu /tmp.

Również po zapisaniu pliku wyjściowego nie można go nadpisać. Ma to na celu uniemożliwienie crackerom zrootowania twojego komputera tylko dlatego, że wstrzyknęli SQL do twojej witryny i mogą uruchamiać dowolne polecenia w MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak importować i eksportować bazę danych MySQL

  2. Grupuj MySQL według daty i liczby, w tym brakujących dat

  3. MySQL, wiele wierszy do oddzielnych pól

  4. Wstawianie daty z formularza za pomocą PHP Mysql

  5. warunkowe sprzężenie w mysql