2012-09-03 63 views
0

我有一個變量$Altgeraet它包含「OK」「NOK」設置來自php變量的MySQL字段

我有一個名爲Status_Altgeraet的mysql字段在表zuordnung。所以現在我想根據變量更新或設置字段。

這是我的嘗試:

$sql_Update = "UPDATE zuordnung SET Status_Altgeraet = ".$Altgeraet""; 
mysql_query($sql_Update); 

你能給我建議如何解決這個問題?我是一名PHP初學者。

+0

你有什麼錯誤嗎?哪個? – Asciiom

+0

不要通過將字符串混合在一起來構建SQL。使用預準備語句/綁定變量。 – Quentin

+1

不要使用'mysql_query',因爲某種原因[手冊頁上有一個大的紅色警告框](http://php.net/mysql_query)。 – Quentin

回答

3

你錯過了周圍的字符串輸入報價,並在線條的末端. CONCAT:

$sql_Update = "UPDATE zuordnung SET Status_Altgeraet = '".$Altgeraet."'"; 
2

你缺少一個點那裏還引用串繞你要設置列值(如Fluffeh提到的評論),試試這個:

$sql_Update = "UPDATE zuordnung SET Status_Altgeraet = '".$Altgeraet."'"; 
mysql_query($sql_Update); 

這些天來,準備的語句可能是要走的路,你應該look into that

+2

該變量也是一個字符串,所以需要封裝在引號中。 – Fluffeh

+0

你是對的,編輯。 – Asciiom

+0

作品感謝您的幫助 – Alesfatalis

0

您當前的語句將導致您爲表中的所有行設置相同的值。

所以最好使用在where子句中查詢,

還有一件事是,字符串值應在查詢包裹在單引號發送。

看到這個

$sql_Update = "UPDATE zuordnung SET Status_Altgeraet = '{$Altgeraet}' WHERE id={$someid}"; 

這裏$ someid是其中包含的行要更新的唯一標識的變量。

,或者你可以用「和」組合「或」更多的條件來選擇要更新的行。

編輯

id是整數類型,這樣做不會需要被包裹在單引號。但是你也可以在單引號中包含整數。