Wacdis
@Wacdis
PHP, Python, GO, Rust, NodeJS, SOA/MSA

Как работать с сырыми результатами SELECT MySQL CLI в PHP CLI?

Напрмер, скрипт test.php, выполняется код через PHP CLI. Есть запрос SELECT field1, field2 FROM table LIMIT 5, выполняется через exec('mysql --user=u --password=pass db -e "SELECT field1, field2 FROM table LIMIT 5"', $res) (другого варианта нет, mysql/PDO/mysqli/mysqlnd не доступны).

Вопрос в получении удобного для работы массива или объекта из $res.

PHP CLI 8.1.9
  • Вопрос задан
  • 76 просмотров
Решения вопроса 2
Vamp
@Vamp
Вам придется самостоятельно парсить $res в более удобный массив или объект. Можно слегка упростить вывод mysql, добавив аргумент --batch.
Ответ написан
Fockker
@Fockker Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Вопрос, конечно, ад, из серии "помогите достать занозу гвоздодёром" но в целом мне приходилось такое делать. Ключик -X и simplexml

Ну и всякие мелочи, типа -N чтобы получить сразу значение, если запрос возвращает одно поле одной строки, group_concat() если надо получить значения через запятую, и прочее
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TheAndrey7
Ровно также как и в браузере. Отличие консольного php от браузерного только лишь отсутствии лимита по времени выполнения, буферизации вывода и http. php.ini может быть свой или можно аргументом передать путь к конфигу.
В общем, установите нужные расширения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы