2015-06-18 92 views
-2

當我處理下面的代碼時,我總是得到這樣的錯誤:「字段列表'中的未知列'數組'。任何人都可以幫助我嗎?我是PHP新手,請耐心等待,謝謝。'字段列表'中的未知列'Array'

//updating conversation members 
function update_cmembers($nc_id,$ids){ 


$r = "DELETE FROM nc_members WHERE nc_id = '$nc_id' "; 

mysql_query($r) or die(mysql_error()); 


$values = array("($nc_id,{$_SESSION['id']},UNIX_TIMESTAMP(),0,1)"); 


foreach($ids as $id){ 

    $id=(int)$id; 

    $values[] = "($nc_id,$id,0,0,0)"; 

} 

$sql = "INSERT INTO nc_members  (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES " . implode(",",$values); 

mysql_query($sql) or die(mysql_error()); 
} 
+0

檢查'$ sql'。你會得到什麼是錯的。 –

+0

我已經使用該代碼(除了刪除部分),當我創建一個新的消息,它的工作正常..但是當我用它在這...我得到那個錯誤..你可以請進一步解釋我怎麼能調試我的代碼? – justMe

+0

也許$ _SESSION ['id']是一個數組? DELETE語句是否工作?嘗試var_dump或在查詢之前回顯$ sql。 – codeneuss

回答

0

變化$values = array("($nc_id,{$_SESSION['id']},UNIX_TIMESTAMP(),0,1)"); 這樣:

`$值=陣列($ nc_id,$ _ SESSION [ 'ID'],UNIX_TIMESTAMP(),0,1));

,改變

$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES " . implode(",",$values); 到:

$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES (" . implode(',',$values).")"

+0

我有空白頁 – justMe

+0

有沒有錯誤? – Faradox

+0

檢查你的表 – Faradox

1

它拋出錯誤,因爲你正在傳遞一個關聯數組內爆的功能。因此,implode函數將它們分配給多個數組並將它們作爲值傳遞。 請刪除$ values數組和sql語句之間的這段代碼。因爲此代碼將$ value數組轉換爲關聯數組。

+0

它給出了相同的錯誤 – justMe

+0

嘗試像這樣︰$ values = array(「$ nc_id,{$ _ SESSION ['id']},UNIX_TIMESTAMP(),0,1」); $ sql =「INSERT INTO nc_members(nc_id,user_id,nc_last_view,nc_deleted,nc_rank)VALUES(」。implode(「,」,$ values)。「)」; –

相關問題