2014-10-31 3 views
0

У меня есть файл дампа таблицы mysql (который можно посмотреть здесь: http://pastebin.com/raw.php?i=GQkjrDNz), который я хотел бы использовать для создания таблицы (с именем php_blog_archive в соответствии с файлом дампа), используя содержимое этого файла sql.Восстановить mysql dump для конкретной таблицы через PHP

Проблема в том, у меня нет доступа к PHPMyAdmin, так что я могу выполнить только с помощью этой команды PHP, я посмотрел на несколько потоков, как это и код, который я до сих пор есть,

<?php 
// Config 
$db_user = "username"; 
$db_pass = "password"; 

exec("mysql -u $db_user -p $db_pass -h localhost databasename < restoreold.sql "); 

?> 

Но он не работает, он просто ничего не делает - даже не показывает никаких ошибок. Может кто-нибудь, пожалуйста, посоветуйте мне, как действовать?

+1

Во-первых, добавьте возвращаемое значение в ваш exec, чтобы убедиться, что он даже выполняется, http://php.net/manual/en/function.exec.php –

ответ

0

Прежде всего команда должна быть:

<?php 
// Config 
$db_user = "username"; 
$db_pass = "password"; 

exec("mysql -u " . $db_user . " -p " . $db_pass . " -h localhost databasename < restoreold.sql "); // Added an space before -h 

?> 

И второе, вы имеете право доступа для создания/редактирования/добавления файла и EXEC команды?

+0

Не будет ли вывод базы данных в «restoreold». sql 'файл? И да, да. – AviateX14

+0

Пароль должен быть напрямую без пробела в '-p'. Вы можете использовать что-то вроде '-p 'password" или '-p'password''. Но mysql ожидает его там. – jankal

0

Я думаю, что у вас есть хорошая старая проблема с паролем.

<?php 
// Config 
$db_user = "username"; 
$db_pass = "password"; 

exec("mysql -u " . $db_user . " -p'" . $db_pass . "' -h localhost databasename < restoreold.sql 2>&1", $output); 

echo nl2br($output); 

?> 

Это в конечном итоге в mysql -u username -p'password' -h localhost databasename < restoreold.sql 2>&1

Последнее, что это эхо masseges ошибки или что-то еще в HTML. Это делается с помощью и ссылочной переменной $output, которая будет конвертировать из nl (новые строки будут в конечном итоге с <br />) в HTML и эхом.

Надеюсь, что это помогает и работает.

Смежные вопросы