2012-07-12 52 views
1

我有一個excel文件,我在AIR中剝離並轉換爲$分隔字符串。我將該字符串發送到PHP($pushFinal),然後使用$array = explode("$",$pushFinal);將字符串轉換爲數組。現在我想遍歷數組,將值插入到SQL中,模仿excel格式。 excel中的每一行都是49列或'值',所以我需要從$array一次爲SQL中的每一行插入49個值。PHP - 循環數組並將值插入到SQL

這樣做的最好方法是什麼?

我是一個新人這麼饒了我吧:)

所以,我嘗試這樣做:

$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); 
} 

INSERT語句將被雖然失敗。這看起來正確嗎?我用excel分隔了每行然後用$分隔該行中的每個值。這在$ pushFinal中正確顯示。

+0

將它轉換爲一行由一個字符和另一列分隔的行分隔的行是不是更好?這樣,您可以爆炸一次以獲取行並再次獲取行中的值。 – 2012-07-12 15:47:23

+0

我試過了你的建議,但我的INSERT失敗了。我的代碼是否正確? – ellis 2012-07-12 19:25:40

+1

即使你正在做一些處理,你仍然在你的查詢字符串中插入幾乎原始的文本,這意味着你很容易受到[SQL注入攻擊](http://bobby-tables.com)的影響。在你繼續使用這些代碼之前,你應該閱讀它們。 – 2012-07-12 19:27:18

回答

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.")";