2011-05-10 5 views
2

shell_exec (localhost)가있는 테이블에 데이터를 삽입하려고합니다.PHP shell_exec INSERT MySQL

$shellExec = 'C:\wamp\bin\mysql\mysql5.1.36\bin\mysql -h localhost -u root mm_'.$acname.' INSERT INTO account (acct_name,start_date,active,name,address1,address2,postcode,telephone,website,email,vat_number,vat_amount,start_number,currency) VALUES("'.$company.'","'.$start_date.'","'.$active.'","'.$acname.'","'.$address1.'","'.$address2.'","'.$postcode.'","'.$telephone.'","'.$website.'","'.$email.'","'.$vat_number.'","'.$vat_amount.'","'.$start_number.'","'.$currency.'")'; 

shell_exec($shellExec); 

로 실행 : 명령 행에서

C:\wamp\bin\mysql\mysql5.1.36\bin\mysql -h localhost -u root mm_robdunne22 INSERT INTO account (acct_name,start_date,active,name,address1,address2,postcode,telephone,website,email,vat_number,vat_amount,start_number,currency) VALUES("sdfsdfy","10-05-2011","1","robdunne22","fsdfs","dfsd","sdf","3423423434sdfsdf","cvxcvdfg","gfgh55ydddd","sdfs","sdfgggaacc","1","pound") 

여기 내가 사용하는 코드입니다.

이 작업이 실패하면 명령 줄에서 MySQL 도움말 정보 만 표시됩니다. 문제는 MySQL에 로그인하는 것과 INSERT 문을 분리해야한다는 것입니다. 내가 그들을 분할하면 잘 작동하지만이 작업을 수행하는 방법을 잘 모르겠다 - 두 개 또는 한 개의 셸 명령으로 분할하십시오.

+4

PHP에 내장 된 mysql 지원을 사용하지 않는 이유는 무엇입니까? –

+0

Windows에서 명령 줄 인수를 올바르게 인용하는 것은 이미 어려운 작업입니다. 당신이하고 싶은 것은 이름이 있습니다 : 마조히즘. –

+0

또한 우리는 준비된 문장을보고 $ company 등이 제대로 이스케이프 처리되는지 확인해야합니다. 마지막으로, 공유 서버에있는 경우 다른 사용자가 작업 관리자를 사용하여 실행하는 명령을 볼 수 없는지 확인해야합니다 (나는 그것이라고 불리는 것으로 생각합니다. –

답변

3

을 인용 해 봅니다.

mysql -u root -p --execute="SELECT User, Host FROM mysql.user" 

이 정보가 도움이되기를 바랍니다.

+0

좋은 답변입니다. – Tareq

0

여기 당신이 필요 달성하기 위해 보이는 예는, MySQL의 문서에서 'INSERT INTO [...skipped...] '