Pythons os.execvp Äquivalent für PHP
-
07-07-2019 - |
Frage
Ich habe ein PHP-Kommandozeilen-Programm läuft bekam. Und ich möchte auf einen MySQL-Shell direkt aus PHP verbinden. Ich habe dies getan, bevor sie in Python os.execvp Aber ich kann nicht die gleiche Sache zu arbeiten, in PHP bekommen.
Ich habe folgende Funktionen versucht:
- System
- passthru
- exec
- shell_exec
Beispiel:
system('mysql -u root -pxxxx db_name');
Aber sie alle scheinen für mysql zu warten, um zu beenden und etwas zurückgeben. Was ich wirklich will, ist für PHP die MySQL-Shell zu starten und es dann selbst zu verlassen. irgendwelche Ideen?
Lösung
Wenn Sie Shell-Befehle interaktiv, nützlich zu sein:
system("mysql -uroot -p db_name > `tty`");
Das wird den meisten Fällen funktionieren, aber brechen, wenn Sie nicht in einem Terminal sind.
Andere Tipps
Geben Sie ein Skript MySQL zu laufen, das ist getrennt von dem PHP-Skript:
system('mysql -u root -pxxxx db_name < script.mysql');
Zusätzlich zu dem, was acrosman sagte, können Sie auch die -e
Schalter verwenden SQL von der Befehlszeile zu übergeben.
$sql = ".....";
system("mysql -u root -pxxxx db_name -e \"$sql\"");
Auch ich hoffe, dass Ihr eigentlich nicht von einer PHP-Anwendung in die Datenbank als root zu verbinden.