MySQL команды (не операторы SQL) из PHP - PullRequest
0 голосов
/ 30 сентября 2010

Возможно ли из скрипта PHP выполнить те же команды, что и с клиентом MySQL?

Я знаю, что теоретически мог бы вызвать 'system' для вызова клиента mysql, установленного в системе, но я не уверен, как избежать интерактивности (я не хочу REPL / shell, я просто хочу запуститькоманда).Есть ли способ выполнять команды через клиент MySQL без входа в оболочку?В любом случае этот подход кажется немного схематичным.

Чтобы уточнить, когда я говорю команду, я имею в виду следующее: http://dev.mysql.com/doc/refman/5.0/en/mysql-commands.html

Ответы [ 2 ]

1 голос
/ 01 октября 2010
while ($obj = mysql_fetch_object($res)) {
        $file = $path.$obj->base.".sql";
        $cmd = "rm -f ".$file;
        exec($cmd);
        $cmd = "nice -19 mysqldump -h".$host." -u".$login." -p".$pass." ".$obj->base." > ".$file;
        exec($cmd);
        $sql = "update save_mysql set last_daily=NOW() where base = '".$obj->base."'";
        mysql_query($sql);
}

Вы ищете что-то подобное?

используя функцию exec, вы можете вызвать команду mysql`

0 голосов
/ 30 сентября 2010

Звучит хакерски. Ожидается, что будет обрабатывать "интерактивность программирования", то есть способ ждать, пока приглашение скажет конкретные вещи. Я не думаю, что exec будет работать, если вы не можете передать определенные ключи и запустить MySQL в неинтерактивном режиме. В зависимости от того, что вы пытаетесь сделать, я бы сказал, что лучше всего попытаться определить команду SQL, которую вы можете отправить через обычные клиентские библиотеки.

...