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 должен быть тем, который генерирует файл, и путь к файлу должен быть абсолютным

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

http://stackru.com/a/16910191/2511206
OR
http://stackru.com/a/26749685/2511206
Другие вопросы по тегам