看板 PHP 關於我們 聯絡資訊
我用PHP5 Mysql5.5 1.我在Mysql建立一個table,內涵一個column格式是text 2.我用a.php post textarea的資料到b.php (已經連結到mysql) $textarea=$_POST["textarea"]; 3.我試著將textarea的資料寫入Mysql $add=insert into boards values('$textarea'); mysql_query($add); 我的疑問: 如果我輸入的資料是i'm xxx那sql指令會因為'符號的關係出錯是要如何避免這點呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.212.195
gname:1.把$add印出來看 2.看 error message 10/29 18:08
NOXI:$add能印出textarea的資料 10/29 18:10
NOXI:感謝大大,我知道為什麼了..因為我輸入的資料是I'm xxx 10/29 18:14
NOXI:有一個'符號...害我的mysql指令出錯 10/29 18:14
※ 編輯: NOXI 來自: 118.169.212.195 (10/29 18:16) ※ 編輯: NOXI 來自: 118.169.212.195 (10/29 18:17)
yade:用看看 stripslashes()? 10/29 18:22
mervynW:htmlspecailchar 10/29 21:37
buganini:純不推樓上 10/29 22:56
buganini:$add='insert into boards values ('.mres($txt).')'; 10/29 22:58
buganini:mres()為mysql_real_escape_string() $txt為$textarea。 10/29 22:59
kerash:如果是用上一篇文章的 mysqli_query 好像可以不用 mres() 10/29 23:29
kerash:算是一個好處..但是老實說我很少看到用mysqli的QQ 學識淺薄 10/29 23:30
buganini:其實應該推mysqli 畢竟官方都說要丟掉mysql了 10/29 23:32
buganini:其實看php.net的example就很有幫助啦 10/29 23:32
kerash:由於是基於mysql的改善版,應該大多數函式是差個 i 而已 10/30 00:06
kerash:可能之後在應用的習慣上需要改(不用特別過濾字元了) 10/30 00:06
kerash:此外 mysqli 只有在 php5 可以跑的樣子 10/30 00:06
whatai:過濾字元的動作本身就很重要 不會因為sql可以接受 10/30 00:17
whatai:某些特殊字元就可以不去過濾 10/30 00:17
whatai:將' " `這些字元轉成 &qout; 之後echo會當成html的語法 10/30 00:21
MOONRAKER:mysqli不錯,跟舊的mysql函數幾乎一一對應 10/30 03:42
MOONRAKER:新手仍然可以看老式的教學,然後照著在mysqli上做 10/30 03:43
whatai:其實如果只為特殊字元沒必要去學mysqli 10/31 00:18
whatai:而且以後真的出去工作 要應用時見得會提供你mysqli的環境 10/31 00:19
whatai:除非你願意把現有的資料庫還有網頁 api等等重新包成mysqli 10/31 00:20
whatai:過濾字元 tag 一直都是很重要的工作 例如防護XSS sql注入 10/31 00:22
MOONRAKER:不見得會提供?我怎麼不知道mysqli還要另外裝? 10/31 02:50
MOONRAKER:現在誰的php老到沒有mysqli?都pdo了咧 10/31 02:51
MOONRAKER:sanitization撿framework裡面的來用,何必自己做輪子 10/31 02:52
kerash:有啦,如果是 php5 以下的好像就不能跑了XD... 10/31 08:51
MOONRAKER:還在5以下不容易吧 :| 10/31 09:08
buganini:應該很多公司還在用老code,阿不過這種公司就... 10/31 10:43
kerash:別懷疑 .. 我公司的中文網站還是php4 .. 我之前才要求更新 10/31 13:30
kerash:不過一更新整天公司的 mail 也會跟著停擺..所以還沒更新 10/31 13:30
shadowjohn:還很多地方還在用php4...但別小看他們整理的東西XD超強 10/31 13:36
herb123456:推mysqli跟pdo,與資料庫連結還是包成class才方便... 11/01 23:15
shadowjohn:只推pdo,有pdo當然用pdo XD 11/01 23:35