2012-01-21 7 views
0

У меня есть этот код:туздЫшпр не работает вообще :(

function export() 
{ 
    $exp = system("mysqldump -uguku -pjustbe repadmin > back-up.sql"); 
    if($exp) {echo 'ok';} 
    else { echo 'err';} 
} 

Но это не работает, все это делает, чтобы создать файл «обратно-up.sql», но это поле пустым. И я получаю сообщение «ERR».

+1

Сначала вы должны увидеть, работает ли: mysqldump -uroot -p repadmin на консоли работает. mysql_connect, mysql_select_db, ваши действия не имеют отношения к вызову system(). 2 разных вещи. – spotman

+0

он отлично работает с консолью, это не из сценария php :(, это строка, которая работала на консоли: «mysqldump -uguku -pjustbe repadmin> back-up.sql», а в разделе " bin ", создается файл с этим именем, и он работает. Когда я запускаю скрипт на странице PHP, создается файл« back-up.sql », но внутри него нет кода. –

+0

' -p' будет запрашивать для пароля, если вы не дадите ему значение. В настоящее время вы не придаете ему значения в коде, который у вас выше. –

ответ

1

Попробуйте использовать полный путь к туздЫшпр ...

$exp = system("/full/path/mysqldump -uroot -p repadmin > back-up.sql");

which mysqldump покажет вам, что путь должен быть.

+0

В любом случае я набираю полный путь, просто или с помощью скобок ... в PHP он не работает, в консоли да, отлично, но на скрипте нет :( –

1

Здесь у вас есть команда, которая работает неправильно. Самое лучшее, что нужно сделать, это захватить stderr (где идут сообщения об ошибках) и посмотреть, что такое выход. Другое замечание - переменные среды будут разными - например, PATH (ссылка на @Joshua_Martell выше).

Используйте эту команду, чтобы захватить поток ошибок и увидеть сообщения об ошибках, что в настоящее время производится:

/usr/bin/mysqldump -uguku -pjustbe repadmin > back-up.sql 2> mysqldump.err 

Это также использует полный путь к mysqldump (используйте правильный путь). Вероятно, вы также должны добавить путь к back-up.sql и, в данном случае, к mysqldump.err - не предполагайте, что PHP будет работать в каталоге, который вам нужен, поскольку он может изменить.

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