2016-06-01 2 views
1

PHP를 사용하여 SQL Express 서버에 대량 데이터를 삽입하고 싶습니다.PHP를 사용하여 SQL에 데이터를 삽입하는 문제

데이터가 포함 된 CSV 파일이 있습니다.

아래 코드를 사용하여 데이터를 삽입하지만 50 행만 추가합니다. 나는 그것이 모든 필드를 표시합니다 명령에 삽입 주석에 의해 PHP에서 결과를 인쇄 할 경우

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
 
<title>Upload page</title> 
 
<style type="text/css"> 
 
body { 
 
\t background: #E3F4FC; 
 
\t font: normal 14px/30px Helvetica, Arial, sans-serif; 
 
\t color: #2b2b2b; 
 
} 
 
a { 
 
\t color:#898989; 
 
\t font-size:14px; 
 
\t font-weight:bold; 
 
\t text-decoration:none; 
 
} 
 
a:hover { 
 
\t color:#CC0033; 
 
} 
 

 
h1 { 
 
\t font: bold 14px Helvetica, Arial, sans-serif; 
 
\t color: #CC0033; 
 
} 
 
h2 { 
 
\t font: bold 14px Helvetica, Arial, sans-serif; 
 
\t color: #898989; 
 
} 
 
#container { 
 
\t background: #CCC; 
 
\t margin: 100px auto; 
 
\t width: 945px; 
 
} 
 
#form \t \t \t {padding: 20px 150px;} 
 
#form input  {margin-bottom: 20px;} 
 
</style> 
 
</head> 
 
<body> 
 
<div id="container"> 
 
<div id="form"> 
 

 
<?php 
 
ini_set('memory_limit', '512M'); 
 
ini_set('max_execution_time', '180'); 
 

 

 

 
//Upload File 
 
if (isset($_POST['submit'])) { 
 
\t 
 
\t if (is_uploaded_file($_FILES['filename']['tmp_name'])) { 
 
\t \t echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; 
 
\t \t echo "<h2>Displaying contents:</h2>"; 
 
\t \t 
 
\t \t //readfile($_FILES['filename']['tmp_name']); 
 
\t } 
 

 
\t //Import uploaded file to Database 
 
\t $row = 1; 
 
\t if (($handle = fopen($_FILES['filename']['tmp_name'], "r")) !== FALSE) { 
 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
 
     $num = count($data); 
 
     
 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
 
     $row++; 
 
     $server = "10.10.10.10\SQLEXPRESS,1433"; 
 
\t \t $options = array( "UID" => "user", "PWD" => "1234", "Database" => "Analytics"); 
 
\t \t $conn = sqlsrv_connect($server, $options); 
 
\t \t if ($conn == false) die("<pre>".print_r(sqlsrv_errors(), true));echo "Successfully connected!"; 
 
\t \t \t $import="INSERT into [Table](column1,column2,column3) values('$data[0]','$data[1]','$data[2]')"; 
 
\t \t \t echo $import; 
 
\t \t \t \t sqlsrv_query($conn,$import) or die(sqlsrv_error()); 
 
\t \t \t unset($data); 
 
    \t } 
 
    \t fclose($handle); 
 
\t } 
 
\t echo "<br /></p>\n"; 
 
\t echo $row; 
 

 

 
\t 
 

 
\t print "Import done"; 
 

 
\t //view upload form 
 
}else { 
 

 
\t print "Upload new csv by browsing to file and clicking on Upload<br />\n"; 
 

 
\t print "<form enctype='multipart/form-data' action='Main.php' method='post'>"; 
 

 
\t print "File name to import:<br />\n"; 
 

 
\t print "<input size='50' type='file' name='filename'><br />\n"; 
 

 
\t print "<input type='submit' name='submit' value='Upload'></form>"; 
 

 
} 
 

 
?> 
 

 
</div> 
 
</div> 
 
</body> 
 
</html>
.

+0

'테이블'에 기본 키가 있습니까? 'data [0], data [1], data [2]'에 작은 따옴표가 있습니까? – gofr1

답변

0

최대 실행 시간을 늘리려고 했습니까? 그것이 문제의 원인이 될 수 있습니다.

this 페이지가 도움이 될 것입니다.

관련 문제