2013-05-11 79 views
-2

有問題的查詢:錯誤使用MySQL查詢更新數據庫表

$outputs = rosy, rosmary; //array1 

$filenames =2.2, 3.2; // array 2 

查詢:

$insert_col = "UPDATE `lil` SET `D`='" .$output. "' WHERE `A`= '" .$filename. "'";// does not work 

而是當我給單個值的數組,它工作得很好,像:

$insert_col = "UPDATE `lil` SET `D`='rosy' WHERE `A`= '2.2'"; // it works 

用於將兩個數組放入查詢我已寫入foreach循環,如下所示

foreach (array_combine($outputs, $filenames) as $output => $filename) { 
    $insert_col = "UPDATE `4` SET `D`='" . $output . "' WHERE `A`= '" . $filename . "'"; 
    echo $insert_col; 
} 

請幫忙!!

+1

如果您使用數組的名稱相同,你可能會遇到麻煩作爲'foreach'變量 – Eli 2013-05-11 07:34:07

+0

這似乎很奇怪,文件名是數字?你的意思是,這個玫瑰色的「屬於」2.2,而「屬於」屬於3.2? – bestprogrammerintheworld 2013-05-11 07:49:46

+0

我們知道這些只是虛擬價值,他爲了張貼它而迅速替換爲SO – Eli 2013-05-11 07:51:58

回答

0

嘗試使用for循環。得到數組的大小和運行for循環,沒有的時候

0

嘗試

$query = 'UPDATE lil SET D = CASE A'; 

foreach($arr as $k => $v) 
    $query .= 'WHEN ' . $k . ' THEN ' . $v; 

$query .= ' END'; 
+0

OP編輯了他的問題,是的,你是對的,我刪除了我的答案 – Amir 2013-05-11 07:50:43

0
$insert_col = 'UPDATE 4 SET D = CASE A'; 
foreach($arr as $output => $filename) 
{ 
$insert_col .= 'WHEN ' . $output . ' THEN ' . $filename; 
$insert_col .= ' END'; 
$insert_result= mysql_query($insert_col)or die("Query failed: " . mysql_error()); 

力工作@eli