php存資料到資料庫,echo出來的sql可正常在mysql裡執行但是放在php中執行卻抱錯,大神們

來源:互聯網
上載者:User
看代碼
$title = $_POST["title"];
$metact_t = $_POST["metact_t"];
$acter = $_SESSION["user"];
$department = $_POST["department"];
$metinfo = $_POST["metinfo"];
$jb = $_POST["jb"];
$department_t = $_POST["department_t"];
獲得傳過來的參數,並作了輸出測試沒有問題
$title = iconv("utf-8","gbk",strip_tags($title));
$metact_t = iconv("utf-8","gbk",strip_tags($metact_t));
$acter = iconv("utf-8","gbk",strip_tags($acter));
$department = iconv("utf-8","gbk",strip_tags($department));
$metinfo = iconv("utf-8","gbk",strip_tags($metinfo));
$jb = iconv("utf-8","gbk",strip_tags($jb));
$status = iconv("utf-8","gbk",'未解決');
$department_t = iconv("utf-8","gbk",strip_tags($department_t));
$saveMeetingSql = "insert into t_metact(id,title,metact_t,acter,department,metinfo,jb,department_t,status)".
" values('$id','$title','$metact_t','$acter','$department','$metinfo','$jb','$department_t','$status')";
echo ($saveMeetingSql );
轉碼輸出sql如下:
insert into t_metact(id,title,metact_t,acter,department,metinfo,jb,department_t,status) values('2','測試0908','2014-09-09','admin','網路部','ceshi','重大','網路部','未解決')
在sql管理器中可正常插入
php中報錯輸出錯誤:ncorrect string value: '\xB2\xE2\xCA\xD409...' for column 'title' at row 1意思應該是說title對應的測試0908不是正常的字元格式設定,資料庫設計欄位為varchar長度20,不知道問題出在哪了,望大神們指點


回複討論(解決方案)

你向資料庫發送的是 gbk 編碼的串,而資料庫預設的字元集並不是 gbk 的
所以資料庫無法識別傳入的串,因此出錯

你的資料庫編碼是什嗎?
插入資料和資料編碼要一致。

我估計也是編碼器的問題

你向資料庫發送的是 gbk 編碼的串,而資料庫預設的字元集並不是 gbk 的
所以資料庫無法識別傳入的串,因此出錯


我轉碼出來的echo的sql是正常的啊,就是不清楚怎麼就向資料庫發成gbk的,應該是編碼問題但就是不知道問題出在哪,我串連資料庫的時候設定的編碼utf8

你的資料庫編碼是什嗎?
插入資料和資料編碼要一致。


資料庫是utf8,插入的sql參數我都轉過碼了,echo的sql執行也沒問題

1、在你的代碼中並沒有資料庫操作的函數,所以我不知道你使用的是什麼資料庫。因此在回複中沒有提出建議
2、你對傳入的資料都做了形如 $title = iconv("utf-8","gbk",strip_tags($title)); 這樣的操作,這就把 utf-8 編碼轉成了 gbk 編碼
3、把錯誤資訊中的 \xB2\xE2\xCA\xD409... 用 php 列印出來
echo "\xB2\xE2\xCA\xD409...";
就是 gbk 編碼的 測試09...
4、如果你串連資料庫時已經聲明了使用 utf8,那麼這些 gbk 編碼資料是要因不屬於 utf-8 範圍而報錯的

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.