подключение к базе данных из скрипта Python, вызванного из переполнения стека

У меня есть скрипт Python, который выполняет следующую строку

os.system (‘mysql -H -uusername -ppwd -hipaddr -e «некоторый запрос»> filename.html’)

когда этот скрипт на Python выполняется независимо, все выглядит нормально, HTML-файл генерируется с выводом запроса.

Но когда я вызываю скрипт python из php (используя shell_exec ()), возникает проблема. «Filename.html» создается, но файл пуст. При поиске относительно этого я обнаружил, что это должно быть сделано

setsebool -P httpd_can_network_connect = 1.

В результате теперь я могу подключиться к mysql с помощью модуля mysqldb в скрипте python, который вызывается из php, который мне не нужен.
Я хочу выполнить запрос, используя команду исполнения mysql через os.system (), которая все еще остается проблемой при вызове из php.
Есть какие-нибудь предложения, чтобы я мог сделать это правильно?

Редактировать :
вот мой скрипт php

<?php

$command = escapeshellcmd('python csv_generate.py');
$output = shell_exec($command);
echo $output;
?>

вот мой скрипт на python (csv_generate.py)

import sys
import os
print "hii"query="show databases"os.system('mysql -H -uaaa -pbbb -hhostip -P3306   -e"%s" >filename.html'%(query))

При вызове из php скрипт Python выполняется и печатает hii. HTML-файл также создан, но файл пуст. Даже когда я пытаюсь отобразить вывод в браузере
то есть,

os.system('mysql -H -uaaa -pbbb -hhostip -P3306  -e"%s"'%(query))

печатает только «hii»

журнал ошибок содержит

sh: / usr / local / mysql / bin / mysql: В доступе отказано

0

Решение

Вам нужно сделать sh файл и поместить команды для подключения внутри.

Например, test.sh

python csv_generate.py

В PHP

exec("sh test.php");

Так что не сбои выполните команду

chmod 777 csv_generate.py
0

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

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

По вопросам рекламы [email protected]