2013-03-28 2 views
0

INTO OUTFILE을 사용하여 .csv 파일에 select 문의 결과를 쓰려고합니다.INTO OUTFILE을 사용하여 .csv에 쓰기

나는 몇 시간 동안 지금 당황하고 있었고 여기에 관련된 많은 다른 질문을 읽었습니다.

내 쿼리를 실행할 때 아무 이유없이 아무 일도 일어나지 않습니다. 페이지에 오류나 기타 내용이 표시되지 않고 파일이 작성되지 않습니다.

다른 누구도이 문제를 경험 한 적이 있습니까? 누군가 내 SQL에 문제가 있는지 말해 줄 수 있습니까?

$customers=dbqueryintoarray(' 
SELECT customer_contacts.Title, customer_contacts.FirstName, 
     customer_contacts.Surname, customer_contacts.Email, 
     customers.LanguageID, customers.DeliveryCountryID 
INTO OUTFILE \'z:/jobs.csv\' 
FIELDS TERMINATED BY \',\' 
OPTIONALLY ENCLOSED BY \'"\' 
LINES TERMINATED BY \'\n\' 
FROM jobs 
JOIN customer_contacts ON jobs.ContactID = customer_contacts.ContactID 
JOIN customers ON jobs.CustomerID = customers.CustomerID 
JOIN equipment ON jobs.EquipmentID = equipment.EquipmentID 
JOIN branches ON jobs.BranchID = branches.BranchID 
WHERE BranchName = "'.$location.'" AND ModelNumber LIKE "%6ES5%" 
'); 

확인한 결과 권한이 있습니다. 내가

를 사용하거나 사망 한 (mysql_error를())

하지만이 오류를 생성하지 않습니다, 그냥 아래로 그 시점에서 페이지에서 모든 것을 제거합니다. 나는 정말로 붙어있어.

+0

MySQL은 Z에 액세스 할 수 있습니까 : \? – isotrope

+0

파일 경로가 잘못되었음을 알 수 있습니다. 창에서, 그것은 z : \ jobs.csv입니다. 백 슬래시 (z : \\ jobs.csv)를 이스케이프 처리해야합니다. – Robbert

+0

잘 모르겠지만 Ive는 C :, z :, s : ad와 같은 디렉토리를 시도했습니다.이 모든 것에 대해서는 아무 것도 얻지 못했습니다. –

답변

0

"C : \\ jobs.csv"어때? 나는 창문에 이것에 대한 경험이 없다. 그러나 나는 php가 \ by /를 대체하지 않는다고 생각한다.

0

파일 경로에 따옴표를 탈출하지 마십시오

... INTO OUTFILE 'z:\jobs.csv' 

그들을 문자열로 그 이름을 보는 MySQL을 방지 이스케이프. 구문 오류로 표시됩니다. 예 :

mysql> select '1' into outfile \'/tmp/z.txt\'; 
ERROR: 
Unknown command '\''. 
ERROR: 
Unknown command '\''. 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'/tmp/z.txt\'' at line 1 

오류가 표시되지 않는다고해서 아무 의미가 없습니다. 당신은 MySQL의 오류를 요청해야 예컨대 :

$result = mysql_query($sql) or die(mysql_error()); 
          ^^^^^^^^^^^^^^^^^^^^^^ 
+0

ok 파일 경로에서 따옴표를 이스케이프하는 것을 멈 췄지 만 (또는 die (mysql_error());) doesnt는 아직도 어떤 오류라도 내 놓는다. –

0

더블 쿼터와 메인 쿼리를 묶으이 함께 시도 :

$customers=dbqueryintoarray(" 
SELECT customer_contacts.Title, customer_contacts.FirstName, customer_contacts.Surname, 
customer_contacts.Email, customers.LanguageID, customers.DeliveryCountryID 
INTO OUTFILE 'z:\\jobs.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"' 
LINES TERMINATED BY '\n' 
FROM jobs 
JOIN customer_contacts ON jobs.ContactID = customer_contacts.ContactID 
JOIN customers ON jobs.CustomerID = customers.CustomerID 
JOIN equipment ON jobs.EquipmentID = equipment.EquipmentID 
JOIN branches ON jobs.BranchID = branches.BranchID 
WHERE BranchName = '$location' AND ModelNumber LIKE '%6ES5%' 
"); 
+0

나는 당신의 지시를 따르기 위해 나의 코드를 수정했지만 아직도 아무것도 얻지 못한다. 나는 이것을 필요로 하느냐? (OPTIONALLY ENCLOSED BY '\ "') 왜냐하면 내가 그 문제를 일으키는 것 같아."내가 그것을 이스케이프했지만 내 SQL 문을 짧게 절단 것으로 보인다 –

관련 문제