2015-01-14 2 views
1

mysql 테이블 data.it을 다운로드 할 CSV 파일을 만들고 있는데 로컬 호스트에서 제대로 작동하지만 라이브 서버에서는 work.it의 비어있는 CSV 파일을 다운로드하지 않습니다.이 파일은 내 PHP 코드입니다 :라이브 서버에서 CSV 다운로드가 작동하지 않습니다.

ob_start(); 
include ("../DB/db.php"); 


$output = ""; 
$table = ""; 
$sql = mysql_query("SELECT * FROM Account"); 
$columns_total = mysql_num_fields($sql); 


for ($i = 0; $i < $columns_total; $i++) { 
$heading = mysql_field_name($sql, $i); 
$output .= '"'.$heading.'",'; 
} 
$output .="\n"; 

while ($row = mysql_fetch_array($sql)) { 
for ($i = 0; $i < $columns_total; $i++) { 
$output .='"'.$row["$i"].'",'; 
} 
$output .="\n"; 
} 


$filename = "Account_details.csv"; 
header('Content-type: application/csv'); 
header('Content-Disposition: attachment; filename='.$filename); 

echo $output; 
exit; 
+0

DB 연결이 두 서버에서 다를 수 있습니까? 텍스트 편집기에서 CSV를여셨습니까? display_errors가 켜져 있으면 오류가 표시됩니다. –

+0

@RyanNaddy "ini_set ('display_errors', 1); error_reporting (E_ALL);"을 사용하여 오류 로그를 확인했습니다. "mysql_num_fields()는 매개 변수 1이 리소스 ... /user/db_sql/download.php 12 행"을 기대합니다. "$ columns_total = mysql_num_fields ($ sql);" – Tje123

+1

mysql_query 함수와 같은 소리는 반환하는 값이 무엇이든간에 오류를 반환합니다 :'string','boolean','null' 등은 mysql_num_fields로 전달됩니다. 해당 테이블이 라이브 서버에 있습니까? 테이블 이름은 Linux가 아니라 Windows에서 대소 문자를 구분합니다. –

답변

0

mysql_query 함수가 mysql_num_fields로 전달되는 오류를 반환합니다.

테이블이 라이브 서버에 있는지 확인해야합니다.

Linux/Mac (Unix)에서는 데이터베이스, 테이블 및 가능한 열 이름이 대소 문자를 구분하므로 Windows에서는 대/소문자를 구분하지 않습니다. 이는 MySQL이 테이블과 데이터베이스의 이름을 지정하기 위해 파일/폴더를 사용하기 때문입니다.

관련 문제