2013-07-18 3 views
0

쿼리를 포함하는 sql 파일을 동적으로 생성합니다. 이 파일은 다음 명령으로 PHP 응용 프로그램에서 주기적으로 실행됩니다mysql에서 여러 쿼리에 대한 출력이 없음

mysql --force -u foo -pbar demo < demo-file.sql 

파일의 내용이 하나의 삽입 was 명령과 같은 오류가 발생하는 경우를 제외하고 명령로부터 출력이 없었다. 이제는 하나의 큰 쿼리가 아닌 개의 쿼리를 포함 할 파일을 변경하기로 결정했습니다. 그 이후로 명령의 출력은 이제 출력이 비어 있지 않기 때문에 발생하는 오류가 있음을 가정하기 때문에

0 
0 
0 

우리의 PHP 응용 프로그램이 실패합니다. 그래서 내 질문은, 나는 여러 개의 쿼리 생성 된 출력이 없다는 SQL 파일을 작성할 수 있습니까? 나는 PHP 애플 리케이션을 만지지 않으려 고합니다. 내가 아는

더 나은 디자인이 있지만 코드는 역사적으로 :-)

[업데이트 1]

기본적으로 응용 프로그램이하는

$response = shell_exec('mysql --force -u foo -pbar demo < demo-file.sql'); 
if (empty($response)) { 
    echo 'OK'; 
} else { 
    echo 'error: '.$response; 
} 

[UPDATE 2]을 재배 sql 파일에 다음 문자가 포함되어 있습니다.

insert into; 
select sleep(0); 
insert into; 
select sleep(0); 
insert into; 
select sleep(0); 
+0

아무것도 파일에 삽입 외에? –

+0

출력을 >>/dev/null로 지정할 수 있습니까 – l0rdseth

+0

삽입 작업이 가능합니까? 오류 일 수 있습니다. – Jost

답변

0

이러한 0은 수면에서 비롯된 것입니다. 그 (것)들을 제거하십시오, 당신은 그 (것)들을 필요로하지 않는다. 당신은 트랜잭션을 지원하는 스키마를 사용하는 경우

또한, 성능을 위해, 당신은 추가해서는 안 :

START TRANSACTION 
INSERT... 
INSERT... 
INSERT... 
... 
COMMIT 
+0

출력으로 0을 원하지 않습니다. 오류가있는 경우에만 모든 것이 정상적으로 처리되면 출력이 필요하지 않습니다. – Laoneo

+0

아, 그러면 합계가 0 인 경우 셸 스크립트에서 합계를 출력하고 아무 것도 출력하지 마십시오. – mdd061000

+0

PHP 응용 프로그램 (셸 스크립트)의 동작을 변경하지 마십시오. – Laoneo

관련 문제