Ho uno script PHP che viene passato i dettagli di connessione MySQL di un server remoto e voglio che esegua un comando mysqldump
. Per fare questo sto usando la funzione php exec()
:mysqldump via PHP
<?php
exec("/usr/bin/mysqldump -u mysql-user -h 123.145.167.189 -pmysql-pass database_name > /path-to-export/file.sql", $output);
?>
quando il diritto password vengono passati ad esso, funzionerà assolutamente bene. Tuttavia, ho problemi a controllare se si esegue come previsto e se non viene rilevato perché no. L'array $output
restituisce come vuoto, mentre se eseguo il comando direttamente sulla riga di comando viene stampato un messaggio che indica che l'accesso non è riuscito. Voglio catturare tali messaggi di errore e visualizzarli. Qualche idea su come farlo?
ecco il link: http://php.net/manual/en/function.exec.php e penso sia meglio dirlo in questo modo: "Per convenzione in Unix un processo restituisce qualcosa di diverso da 0 quando qualcosa va storto" :) –
Esiste un modo per sapere qual è il valore di ogni valore restituito da $ return_var in modo da poterlo tradurre in un messaggio di errore significativo? Suppongo che sia diverso per ogni comando. –
se $ return_var non è uguale a zero, l'output $ deve avere il codice di errore, perché i programmi scrivono un errore su stderr che è diverso dallo stdout che hai reindirizzato a un file. 'if ($ return_var) {die ($ output); } ' –