2012-12-02 3 views
1

테마의 접두어가 PHP를 사용하여 주어진 하위 문자열과 일치하는 경우 일부 테이블을 덤프하려고합니다. PHP의 system을 사용하려고 시도해도 덤프 파일이 생성되지 않았다는 의미에서 어떤 결과도 나타나지 않았습니다. 나는 내 결과를 얻기 위해 명령 줄 기능 exec를 사용하는 것이 생각 나는 다음과 같은 오류덤프 일치 테이블 PHP

mysqldump: unknown option '-s' 

이에게 반환 다음

exec('E:/xampp/mysql/bin/mysqldump '. $dbname .' -h '. $this->host .' -u ' .$this->user . ' $(E:/xampp/mysql/bin/mysql -u '. $this->user . ' -p ' . $dbname .' -Bse "show tables like \'wp_dev%\'")> mydb.sql 2>&1', $output); 

하지만 일치하는 테이블을 필터링 할 것입니다 무슨 하위 쿼리를 만들고 있었다 구문에 의해 뭔가를 놓친 것처럼 보입니다.

+0

+1 좋은 질문입니다. –

답변

1

이렇게 사용하면 나열된 테이블 만 덤프됩니다.

exec('E:/xampp/mysql/bin/mysqldump -h '. $this->host .' -u ' .$this->user . ' -p'. $this->password .' '. $dbname .' table1 table2 > /path_to_file/dump_file.sql'); 
+0

그리고 어떻게이 쿼리'\ 'wp_dev % \'와 같은 테이블을 만들 수 있겠습니까? "'$ tables ="$ dbname LIKE와 같은 테이블을 생성하고있는 것을 위해 일치 테이블 – fefe

+0

을 덤프하고 싶습니다. 'wp_ %' "; $ result = mysql_query ($ tables); $ to_dump = array(); while ($ dumped_tables = mysql_fetch_row ($ result)) { $ to_dump [] = $ dumped_tables [0]; }'implode를 사용하려고합니다. 하지만 뭔가 내가 mysqldump에 의해 누락 된있어 – fefe

+0

내 업데이트 된 솔루션을 확인, 당신은 당신이 백업을하고 싶어 테이블 이름을 통과해야 implode ('', $ to_dump); 테이블 이름 문자열을 형성한다. –