[請益] PDO 無法輸入英文或中文到SQL..

看板PHP作者 (藍海悅)時間10年前 (2015/11/04 01:26), 10年前編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
各位前輩好~ 剛剛嘗試用PDO 查詢新增修改刪除都很順利的過來了 (沒有用hmtl,可以寫入英文中文) 現在嘗試由html寫入資料到sql 可是發現...... 只要有中文跟英文就無法寫入.... 打數字才能寫入.... html有加 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> php檔 <?php header("Content-Type:text/html; charset=utf-8"); $sno=$_POST['a']; $name=$_POST['b']; $dsn = ""; $dbh=new PDO(); $dbh->exec("set character set utf-8"); $sql="insert into test(sno,name)values($sno,$name)"; /* ^這裡要加' ' e.g. '$sno' */ $count=$dbh->exec($sql); echo $sql; if(!$sql) echo "no"; else echo "ok"; $dbh=null; ?> 我有用echo $sql看,顯示如下(假設html分別輸入1和abc後) INSERT INTO test(sno,name)VALUES(1,abc)ok 這樣顯示程式應該是沒問題吧? 但只要有中文或英文就無法寫入囧 phpMyadmin編碼也預設了utf8_general_ci sno、name型態都用varchar了空間各20 瀏覽器編碼也用了utf-8 請問各位前輩問題究竟出在哪裡...... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.45.183 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1446571592.A.5B9.html

11/04 01:33, , 1F
字串要引號
11/04 01:33, 1F
......對齁!!!(震驚 我笑了xDDDDD 謝謝大大我真的是Orz

11/04 01:45, , 2F
這樣寫很不好的~再仔細找一下preparedstatement
11/04 01:45, 2F

確實呢,我看網路上大多都是那種寫法 像我這樣的完全沒有 明天就來改xDD 為了一個引號從7點弄到現在囧 謝謝大大嘿 不過Prepared Statements中翻要怎念阿? 預處理?

11/04 07:50, , 4F
開發環境最好把錯誤訊息全開,把sql貼到phpmyadmin之
11/04 07:50, 4F

11/04 07:50, , 5F
類資料庫管理工具執行也會秀錯誤訊息
11/04 07:50, 5F
好的感謝大大會從這方面著手 這次為了一個引號弄那麼久真的是慘痛的教訓.... 全開是指 getMessage() getCode() getFile() getLine() getTrace() backtrace() getTraceAsString() 全放嗎? 因為我是Vim打好就丟伺服器然後開網頁來看了......

11/04 10:01, , 6F
用到pdo就可以好好用prepare了 土製SQL已經是過去的事
11/04 10:01, 6F
剛剛改完覺得蠻潮的ww ※ 編輯: yongb (36.233.4.167), 11/04/2015 14:17:18
文章代碼(AID): #1MEEv8Mv (PHP)
文章代碼(AID): #1MEEv8Mv (PHP)