У меня запущена программа командной строки PHP. И я хочу подключиться к оболочке mysql прямо из PHP. Я делал это раньше в Python, используя os.execvp. Но я не могу заставить то же самое работать в PHP.
Я пробовал следующие функции:
пример:
system('mysql -u root -pxxxx db_name');
Но все они, кажется, ждут, пока mysql выйдет и что-то вернет. Я действительно хочу, чтобы PHP запускал оболочку mysql, а затем сам выходил из нее. есть идеи?






Дайте MySQL запустить сценарий, отдельный от сценария PHP:
system('mysql -u root -pxxxx db_name < script.mysql');
В дополнение к тому, что сказал акросман, вы также можете использовать переключатель -e для передачи SQL из командной строки.
$sql = ".....";
system("mysql -u root -pxxxx db_name -e \"$sql\"");
Кроме того, я надеюсь, что вы на самом деле не подключаетесь к базе данных как root из приложения PHP.
Если вы хотите, чтобы команды оболочки были интерактивными, используйте:
system("mysql -uroot -p db_name > `tty`");
Это будет работать в большинстве случаев, но сломается, если вы не в терминале.
Блестяще! это именно то, что я искал!
Спасибо за подсказку, но это не то, что я ищу. Я хочу переместить пользователя из PHP cli в оболочку mysql.