MySQL: SELECT * INTO OUTFILE возвращает всегда пустой массив и без кода ошибки?

Я пытаюсь сбросить таблицу в файл MySQL, используя PHP.
Но то, что я получаю, это пустой массив, а не какой-либо файл создается. Хотя, если я уберу инструкцию «INTO OUTFILE ‘$ mysqldumpfile’», все будет отлично.
пожалуйста, вот код:

<?php
$tablename = "song";
$mysqldumpfile = "mysql_dump.sql";
$pdo_options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', );

try {
// Call MySQL DB
$sql = new PDO($servername, $username, $password, $pdo_options);
} catch (PDOException $e) {
die("DB not available");
}

// Dump MySQL
$sth = $sql->prepare("SELECT * INTO OUTFILE '$mysqldumpfile' FROM $tablename");
$sth->execute();
$result = $sth->fetchAll();
print_r($result);
if(! $result) {
die('Could not load data : ' . mysql_error());
}
$sql = null;
?>

2

Решение

убедитесь, что у mysql есть права на доступ к этому файлу, также поле не может существовать до запроса, mysql должен быть тем, который генерирует файл, и путь к файлу должен быть абсолютным

1

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

Посмотрите, работает ли это для вас:

http://stackoverflow.com/a/16910191/2511206
OR
http://stackoverflow.com/a/26749685/2511206
-1

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