mysql — sql в php-файле работает при запуске в браузере, но не при запуске из командной строки

Я пытался понять это в течение 2 дней. Вот сценарий:

функция в notificaton_system.php запускается, и если выполняются определенные условия, она запускает это:

$cmd = 'php -f /var/www/site.com' . $system_file . ' /file:"' . $file . '" /environment:"' . $application_env . '"';

$update_data = exec($cmd, $out, $retvar);

return $update_data;

внутри $ system_file он имеет этот SQL-оператор, вызываемый с использованием PDO:

$sql = '
update
`USER`.t_pto_request
set status_code = :pto_status
where
request_id = :update_id;
';

после выполнения этого оператора я получаю сообщения об ошибках:

$error_arr = $stmt->errorInfo();
print_r($error_arr);

это всегда показывает без ошибок:

Array(
[0] => 00000
[1] =>
[2] =>
)

затем он выбирает строку и выводит ее:

$sql_2 = '
select
request_id,
user_id,
status_code
from
`USER`.t_pto_request
where
request_id = :update_id;
';

однако строка НЕ ​​обновляется (я проверял много раз), и она всегда выводит пустой массив, когда пытается выбрать строку, которую предполагалось обновить.

если я бегу точно такой же запрограммируйте непосредственно в браузере и передайте значения через строку запроса вместо аргументов командной строки:

https://www.oursite.com/path/to/file/system_file.php?file=/path/to/sys_file.txt&environment=dev

Это делает работа и строка обновляется. В обоих случаях используется один и тот же пользователь MySQL (запускается напрямую в браузере, а не из командной строки из другой программы PHP).

Я не получаю ошибок PHP или PDO в любом случае

Я не могу понять, почему оператор не будет возвращать ошибок, но не будет обновлять строку при запуске в качестве программы командной строки

Я понимаю, что это сложный сценарий. Пожалуйста, дайте мне знать, если мне нужно опубликовать дополнительную информацию, чтобы что-то прояснить.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector