[請益] textarea無法存進mysql的text??

看板PHP作者 (EZway)時間14年前 (2011/10/29 18:00), 編輯推噓5(5031)
留言36則, 10人參與, 最新討論串1/3 (看更多)
我用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

10/29 18:08, , 1F
1.把$add印出來看 2.看 error message
10/29 18:08, 1F

10/29 18:10, , 2F
$add能印出textarea的資料
10/29 18:10, 2F

10/29 18:14, , 3F
感謝大大,我知道為什麼了..因為我輸入的資料是I'm xxx
10/29 18:14, 3F

10/29 18:14, , 4F
有一個'符號...害我的mysql指令出錯
10/29 18:14, 4F
※ 編輯: NOXI 來自: 118.169.212.195 (10/29 18:16) ※ 編輯: NOXI 來自: 118.169.212.195 (10/29 18:17)

10/29 18:22, , 5F
用看看 stripslashes()?
10/29 18:22, 5F

10/29 21:37, , 6F
htmlspecailchar
10/29 21:37, 6F

10/29 22:56, , 7F
純不推樓上
10/29 22:56, 7F

10/29 22:58, , 8F
$add='insert into boards values ('.mres($txt).')';
10/29 22:58, 8F

10/29 22:59, , 9F
mres()為mysql_real_escape_string() $txt為$textarea。
10/29 22:59, 9F

10/29 23:29, , 10F
如果是用上一篇文章的 mysqli_query 好像可以不用 mres()
10/29 23:29, 10F

10/29 23:30, , 11F
算是一個好處..但是老實說我很少看到用mysqli的QQ 學識淺薄
10/29 23:30, 11F

10/29 23:32, , 12F
其實應該推mysqli 畢竟官方都說要丟掉mysql了
10/29 23:32, 12F

10/29 23:32, , 13F
其實看php.net的example就很有幫助啦
10/29 23:32, 13F

10/30 00:06, , 14F
由於是基於mysql的改善版,應該大多數函式是差個 i 而已
10/30 00:06, 14F

10/30 00:06, , 15F
可能之後在應用的習慣上需要改(不用特別過濾字元了)
10/30 00:06, 15F

10/30 00:06, , 16F
此外 mysqli 只有在 php5 可以跑的樣子
10/30 00:06, 16F

10/30 00:17, , 17F
過濾字元的動作本身就很重要 不會因為sql可以接受
10/30 00:17, 17F

10/30 00:17, , 18F
某些特殊字元就可以不去過濾
10/30 00:17, 18F

10/30 00:21, , 19F
將' " `這些字元轉成 &qout; 之後echo會當成html的語法
10/30 00:21, 19F

10/30 03:42, , 20F
mysqli不錯,跟舊的mysql函數幾乎一一對應
10/30 03:42, 20F

10/30 03:43, , 21F
新手仍然可以看老式的教學,然後照著在mysqli上做
10/30 03:43, 21F

10/31 00:18, , 22F
其實如果只為特殊字元沒必要去學mysqli
10/31 00:18, 22F

10/31 00:19, , 23F
而且以後真的出去工作 要應用時見得會提供你mysqli的環境
10/31 00:19, 23F

10/31 00:20, , 24F
除非你願意把現有的資料庫還有網頁 api等等重新包成mysqli
10/31 00:20, 24F

10/31 00:22, , 25F
過濾字元 tag 一直都是很重要的工作 例如防護XSS sql注入
10/31 00:22, 25F

10/31 02:50, , 26F
不見得會提供?我怎麼不知道mysqli還要另外裝?
10/31 02:50, 26F

10/31 02:51, , 27F
現在誰的php老到沒有mysqli?都pdo了咧
10/31 02:51, 27F

10/31 02:52, , 28F
sanitization撿framework裡面的來用,何必自己做輪子
10/31 02:52, 28F

10/31 08:51, , 29F
有啦,如果是 php5 以下的好像就不能跑了XD...
10/31 08:51, 29F

10/31 09:08, , 30F
還在5以下不容易吧 :|
10/31 09:08, 30F

10/31 10:43, , 31F
應該很多公司還在用老code,阿不過這種公司就...
10/31 10:43, 31F

10/31 13:30, , 32F
別懷疑 .. 我公司的中文網站還是php4 .. 我之前才要求更新
10/31 13:30, 32F

10/31 13:30, , 33F
不過一更新整天公司的 mail 也會跟著停擺..所以還沒更新
10/31 13:30, 33F

10/31 13:36, , 34F
還很多地方還在用php4...但別小看他們整理的東西XD超強
10/31 13:36, 34F

11/01 23:15, , 35F
推mysqli跟pdo,與資料庫連結還是包成class才方便...
11/01 23:15, 35F

11/01 23:35, , 36F
只推pdo,有pdo當然用pdo XD
11/01 23:35, 36F
文章代碼(AID): #1EgyxFo5 (PHP)
文章代碼(AID): #1EgyxFo5 (PHP)