Я пытаюсь написать функцию, которая возвращает весь дамп SQL, используя этот код:Mysql дамп с помощью PHP
$command = "C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin\\mysqldump --add-drop-table --host=$hostname
--user=$username ";
if ($password)
$command.= "--password=". $password ." ";
$command.= $dbname;
var_dump(terminal($command));
function terminal($cmd)
{
if (function_exists('system'))
{
ob_start();
system($cmd, $retVal);
$output = ob_get_contents();
ob_end_clean();
$function_used = "system";
}
else if(function_exists('passthru'))
{
ob_start();
passthru($cmd, $retVal);
$output = ob_get_contents();
ob_end_clean();
$function_used = "passthru";
}
else if(function_exists('exec'))
{
exec($cmd, $output, $retVal);
$output = implode("n", $output);
$function_used = "exec";
}
else if(function_exists('shell_exec'))
{
$output = shell_exec($cmd);
$function_used = "shell_exec";
}
else
{
$output = "Cannot execute shell commands";
$retVal = 1;
}
return array('output' => $output, 'returnValue' => $retVal, 'functionUsed' => $function_used);
}
Учетные базы данных являются правильными, когда я запускаю эту команду в обычной командной строке это получить желаемый результат.
Проблема в том, что, когда я пытаюсь использовать эту команду, либо я использую функцию i, я всегда получаю пустую строку в качестве вывода. С другой стороны, возвращаемое значение всегда равно 1, что приводит к истинному, я думаю, и означает, что функция выполнена правильно, иначе я получу ложное возвращаемое значение.
Например, я использую «систему», так как это первый кулак, с которым я сталкиваюсь. Является ли это corrent, как я получаю выход?
С уважением
спасибо, что это сработало для меня! – Combinu