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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top