Re: [請益] 一個簡單的語法請問 謝謝

看板PHP作者 (Hava A Nice Day)時間14年前 (2011/04/23 14:48), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串3/5 (看更多)
※ 引述《goodtau (goodtau)》之銘言: : 不好意思打擾了 : if($_POST["comm"] == "推薦此店家" and $oldip!=$ip or $sec>$oldsec+600){ : $sSql="UPDATE `store` SET `store_recommend` = 'store_recommend+1' WHERE : `store_phone`='$p'"; : $result=mysql_query($sSql,$link); : } : 我想要做一個按了推薦按鈕 : 然後資料表內的推薦數就會+1 : 我翻了好幾本書 : 還是不知道為什麼我這樣寫 : 推薦數沒辦法+1 : 麻煩請大家指教了 : 謝謝 在mysql中, 有時資料表名稱或欄位名稱上不小心使用到關鍵字的話 在sql語法中會出錯 所以, 可以用`資料表`.`欄位` 來表示 以免發生錯誤 在此篇裡 $sSql="UPDATE `store` SET `store_recommend` = 'store_recommend+1' WHERE `store_phone`='$p'"; `store_recommend` = 'store_recommend+1' `store_recommend` 是欄位名稱 = 'store_recommend+1' <--這就是字串了 不管在PHP或是SQL語法裡, 用'(單引號)包起來的東西, 都是字串 假如 store_recommend 資料型態若是 int 時, 你若讓他等於 'store_recommend+1', 會是 0 所以, 你應該改成 `store_recommend` = `store_recommend` + 1 請注意到 ` 跟 ' 的不同 另外,在使用mysql時, 請善用 mysql_error() 來除錯 希望你在學PHP跟SQL語法時不要只會照著書打 要懂的他的用法,這樣在學習上才有幫助! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.124.82.43 ※ 編輯: lazyhome 來自: 122.231.232.57 (04/23 20:53)

04/23 23:26, , 1F
我改成` `結果還是不行ㄟ....?
04/23 23:26, 1F

04/24 02:56, , 2F
檢查 store_recommend 欄位的資料型態, 要整數型態
04/24 02:56, 2F

04/24 08:49, , 3F
是整數型態
04/24 08:49, 3F

04/24 09:42, , 4F
echo mysql_error($link); 看看有沒有問題
04/24 09:42, 4F
※ 編輯: lazyhome 來自: 122.231.232.57 (04/24 09:42)

04/25 00:54, , 5F
試過了 沒有錯誤ㄟ...
04/25 00:54, 5F
文章代碼(AID): #1DidPQAV (PHP)
文章代碼(AID): #1DidPQAV (PHP)