問題描述:
用PHP向MySql數據庫中修改數據,實現增刪改(數據庫能正確連接)
經測試,代碼只能對數字進行正常的增刪改操作,非數字操作無效
但要在課程名稱中輸入中文,應該如果修改呢?
存在問題的代碼主要是:
,$kkxq,$xs,$xf)"
代碼(代碼是正確的)如下:
(都是猜的)
由於只對數字有效,故推測傳進數據庫的數據類型存在問題。
但通過 var_dump($kcm) 得到數據類型是 string 類型。
那麼要向數據庫傳入字符串變量怎麼做?
經測試:
可行辦法是,給該行代碼中的字符串變量加單引號:
'$kcm',$kkxq,$xs,$xf)"
但思考到,PHP中雙引號才解析變量,所以就有點混亂了,故百度了一下。
值得一看:http://www.jb51.net/article/21035.htm
從這個鏈接中,弄懂了一些問題。總結如下:
1、簡單概括:雙引號中的變量可以解析,單引號就是絕對的字符串。單引號、雙引號必須成對使用,
2、單引號中的 “\” 反斜槓會被直接輸出,雙引號中的反斜槓才會被解析為轉義字符。
、PHP復雜的變量用花括號括起來,語法分析器就能正確分析。如:
、在插入數據庫的SQL語句是采用單引號來定義字符串。
如果要將一個含有單引號的字符串插入數據庫,要用轉義字符。
addslashes() 函數,該函數的功能:在指定的預定義字符前添加反斜槓。
雙引號(")
反斜槓(\)
NULL
http://zh.wikipedia.org/wiki/SQL%E6%B3%A8%E5%85%A5%E6%94%BB%E5%87%BB
http://welcome6.blog.163.com/blog/static/189281346201001694237345/
來自為知筆記(Wiz)