2014-04-25 175 views
0

我不知道我在做什麼錯,但是我對MySQL並不擅長。我基本上有一個在我的數據庫中有一列「狀態」的表。如果聲明爲真,我想將狀態更改爲「1」,如果它的錯誤,我想將狀態更改爲「0」。MySQL簡單查詢

我遇到問題了,是MySQL查詢,我有PHP部分全部設置和工作(用回聲測試它)。

我的當前查詢:(這是什麼情況後,我{PHP if語句)

mysql_query('UPDATE page WHERE id="'.$id.'" SET status="1"'); 

我定義$編號的方法:提前

if(isset($_GET['id'])) 
{ 
$id = intval($_GET['id']); 
} 

謝謝!

回答

1

它應該是:

mysql_query('UPDATE page SET status="1" WHERE id="$id"'); 

如果使用的mysqli:

mysqli_query($cxn, 'UPDATE page SET status="1" WHERE id="$id"'); 
+0

我知道這是我的愚蠢切換周圍的話,謝謝! – BananaMan

+0

沒問題!別忘了這個網站上的很多人會推薦你使用mysqli或準備好的語句來查詢 –

+0

是的,我知道,但我現在沒有爲任何網站編寫任何代碼,只是自己做一些有趣的東西來獲得更多的sql東西,因爲我知道PHP但對MySQL和東西不太好。另外,是不是使用PDO更安全? – BananaMan

3

既然要更新所有記錄(從你的描述),你可以做

UPDATE page 
SET `status` = case when id = $id 
        then 1 
        else 0 
       end 
+0

我使用if/elseif語句來驗證狀態需要更改的方式,然後以這種方式執行狀態。這對我很有用,做這項工作,我明白這一點,所有的問題似乎都是我轉變話題的愚蠢:P我感謝你,儘管我不會使用它,因爲我不知道它到底做了什麼。我稍後再做一些研究並嘗試弄明白,謝謝^^ – BananaMan

+0

它更新所有記錄,並且如果id與給定的id相匹配,則將狀態設置爲1,否則將狀態設置爲0。 –

1

改變SET和WHERE的順序如下:

mysql_query('UPDATE page SET status=1 WHERE id="'.$id.'" '); 

而且你不需要雙倍「在MySQL上圍繞整數。