2012-07-12 4 views
1

AIR에서 스트립하고 $ 구분 문자열로 변환하는 Excel 파일이 있습니다. 그 문자열을 PHP ($pushFinal)로 보낸 다음 $array = explode("$",$pushFinal);을 사용하여 문자열을 배열로 변환합니다. 이제 배열을 반복하면서 SQL에 값을 삽입하여 Excel 형식을 모방하려고합니다. Excel의 각 '줄'은 49 열 또는 '값'이므로 SQL의 각 행에 대해 $array에서 한 번에 49 개의 값을 삽입해야합니다.PHP를 통해 배열을 루프하고 SQL에 값을 삽입하십시오.

가장 좋은 방법은 무엇입니까?

나는 신인 그렇게 나에게 자비를 베풀어 해요 :)

그래서, 나는이 시도 다음 INSERT 비록 실패

$pushFinal = $_POST["pushFinal"]; 
$lines = array(); 
$lines = explode("|",$pushFinal); 
$lineItems = array(); 


foreach ($lines as $val){ 
    $lineItems = explode("$",$val); 
    $temp = ""; 
    foreach($lineItems as $val2){ 
     $temp = $temp."'".$val2."',"; 
    } 
    $sql="insert into OPS_SCHEDULE values($temp)"; 
    $stmt = sqlsrv_query($conn,$sql); 
} 

합니다. 이 모양이 맞습니까? 나는 각 줄을 | 그 라인의 각 값을 $로 구분합니다. 그것은 $ pushFinal에서 올바르게 나타납니다.

+0

하나의 문자로 구분 된 행과 다른 문자로 구분 된 열이있는 문자열로 변환하는 것이 더 좋지 않겠습니까? 이렇게하면 행을 가져오고 행의 값을 다시 얻기 위해 한 번 분해 할 수 있습니다. –

+0

귀하의 제안을 시도했지만 INSERT가 실패했습니다. 내 코드가 맞습니까? – ellis

+1

일부 처리를 수행하는 경우에도 여전히 거의 원시 텍스트를 쿼리 문자열에 삽입하기 때문에 [SQL 주입 공격] (http://bobby-tables.com)에 취약합니다. 이 코드를 사용하기 전에 해당 코드를 읽어야합니다. –

답변

0

확인해 봅니다.

$pushFinal = $_POST["pushFinal"]; 
$lines = array(); 
$lines = explode("|",$pushFinal); 
$lineItems = array(); 

foreach ($lines as $val){ 
    $lineItems = explode("$",$val); 
    $temp = ""; 
    foreach($lineItems as $val2){ 
     $temp = $temp."'".$val2."',"; 
    } 
    $temp = substr($temp, 0, -1); 
    $sql ="insert into table values($temp)"; 
    $stmt = sqlsrv_query($conn,$sql); 
} 

$temp 행에서 ","후행을 제거해야했습니다. 값과 별도로 열을 구분하는 것을 도와 주신 "lc"에게 감사드립니다. 그것은 매력처럼 작용했습니다.

0

인터넷에서 기본 PHP/MySQL 소개 페이지를 읽으면 아무 때나 코드가 완성됩니다. 이미 데이터베이스를 설정했다고 가정합니다.

1
foreach($array as $val){ 
    $sqlVals[]="'".$val."'"; 
} 
$sqlValsStr = implode(",",$sqlVals); 
$sql = "insert into table values(".$sqlValsStr.")"; 
관련 문제