PHP GBK sql編程需注意事項
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
主要的原因是因為0xbf27 在 gbk 編碼情況下出現(xiàn)的bug ,其它編碼gb2312 utf-8無影響。 簡單的解決方法,使用gb2312編碼,改動較小。 mysql_query("SET CHARACTER SET 'gb2312'"); 多數(shù)項目都在使用addslashes()來自動轉(zhuǎn)義“'”“"”“\” addslashes()對單字節(jié)沒有問題,對gbk編碼存在bug 這個和Sql創(chuàng)建數(shù)據(jù)庫表時沒有任何關(guān)系。既使 CREATE TABLE `test` ( `id` int( 4 ) NOT NULL AUTO_INCREMENT , `content` varchar( 200 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM DEFAULT CHARSET = gbk 也不受此bug影響 $c=addslashes($_GET['c']); mysql_connect("localhost","root","123456"); mysql_select_db("test"); mysql_query("SET CHARACTER SET 'gbk'"); $content=$c; $sql=" select count(*) num from `test` where `content`='$content'"; $rs = mysql_query($sql); $row=mysql_fetch_array($rs); if(isset($row['num'])){ echo "登陸OK "; } else { echo "登陸失敗,用戶ID不存在"; } /* bug測試地址 test.php?c=%bf%27 OR 1 = 1 /* */ 該文章在 2012/6/5 23:41:22 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |