2017-03-05 115 views
0

我是PHP新手,請不要破我的印章。UPDATE查詢在while循環中不起作用

我正在構建知識庫系統,基本的CRUD功能。我陷入了困境,我需要爲表中的每列填充NULL值。

這基本上是「編輯KB」表單。我有一個複選框數組,在編輯時我想從我的表'category_kb_members'的類別列中清除KB數字。

我的代碼可以很好地工作,除了這一點。

這是我當前的代碼:

//Clear all categories for this KB 
while($catrow = mysqli_fetch_array($categorylist)){ 
$catname = ""; 
$catname = $catrow['name']; 
mysqli_query ($dbc, "UPDATE category_kb_members SET $catname=NULL WHERE $catname ='$kbid';"); 
} 

[請注意沒有必要爲源是從數據庫中乾淨這裏緊靠SQL注入發表評論]

「$所屬分類」是一個數組類別名稱 - 我正在更新的表格每個類別都有一列。

「$ kbid」是從URL中的$ _GET中設置的,並且與要刪除的KB號碼相對應,並且有效且正在工作。

我的循環是查詢並更新每列以使KB值爲NULL(如果它存在於列中)。代碼稍後將繼續添加到相關的列中。

我已經對MYSQL運行此查詢,它工作得很好SQL方面。

有關爲什麼UPDATE不起作用的任何想法?

+0

'$ catname ='$ kbid''這個鍵在哪? –

+0

這是上面...它的設置和有效... – Rich

+0

'$ catname = NULL'在這裏你確定列名是正確的嗎? '$ catname' –

回答

0

感謝您的所有意見。向所有協助的人致謝。

我複製我的查詢$ catname

$categorylist = mysqli_query($dbc,"SELECT name FROM categories"); 

這是進一步上漲的代碼。雖然這個變量已經設置好了,並且爲上面的代碼工作,但它必須已經在我的代碼的上面的某處清除了。如果我在循環上面重新運行這部分,它可以正常工作。我將不得不弄清楚上面覆蓋我的變量的是什麼。

感謝大家和「阿卜杜拉」讓我第三次思考。