PHP插入MySQL資料後變成亂碼

2021-08-19 15:39:41 字數 4453 閱讀 9729

1樓:

編碼方式不一樣,你資料庫的編碼是gb2312,你頁面的也應該是gb2312

還有一個地方就是連線資料庫的地方加句:mysql_query("set names 'gb2312'");

2樓:牛志向

資料庫、程式還有瀏覽器的編碼方式要一樣,要麼都是gb2312,要麼都是utf-8,等等

3樓:匿名使用者

插入之前要加上下面的語句:

mysql_query('set names gbk');

4樓:匿名使用者

那是因為你資料庫的編碼跟頁面的編碼不一致導致的

php插入mysql資料庫中文變成亂碼 問號

5樓:℡媙の綺

去mysql裡面設定,不要在php裡設定mysql的編碼,亂碼肯定就是編碼問題無疑,推薦你先把mysql裡面表的編碼改好,然後再把php的編碼改好,這樣就應該沒問題了。

php插入 資料到mysql出現亂碼的?

6樓:匿名使用者

mysql會出現中文亂碼的原因不外乎下列幾點:

1.server本身設定問題,例如還停留在latin12.table的語系設定問題(包含character與collation)

3.客戶端程式(例如php)的連線語系設定問題強烈建議使用utf8!!!!

utf8可以相容世界上所有字元!!!!

linux下mysql插入中文顯示亂碼解決方案mysql -uroot -p 回車輸入密碼解決方案:

mysql>user mydb;

mysql>alter database mydb character set utf8;!

另一種方法是直接修改預設的mysql配置檔案在debian環境下,徹底解決mysql無法插入中文和中文亂碼的辦法上面提到了用臨時方法更改資料庫的字符集設定,顯示中文,但是後來發現在有的系統下並不能成功,比如我用的debian 7.0,找了好久終於找到一個適合debian系統的解決方案,debian 7.0下測試成功,其他諸如修改client和mysql加入default-character-set=utf8的方法之類的,只適用與5.

5以前的系統!

7樓:匿名使用者

$result=mysql_query($query)or die (" error in query :$query.".mysql_error());這句之前寫上:

$r=mysql_query('set names utf8');

over。

php向mysql資料庫插入的utf8編碼的中文變成亂碼

8樓:虎爺可樂

**是沒發現問題了,看你的表欄位是不是定義的 utf8 編碼了

9樓:審計拍

你這幾個函式是原生的php函式麼 貌似不是吧

php連線資料庫插入資料後,mysql中查詢漢字字元亂碼

php使用utf8插入中文資料到mysql中文顯示會亂碼怎麼辦?

10樓:匿名使用者

資料庫使用utf8編碼,需要在操作的過程中統一全部編碼。

create database `test` default character set 'utf8';

create table `tablea`(

`id` int not null auto_increment,

`title` varchar(100) null,

)engine=innodb default charset=utf8;

預設情況下,欄位的編碼同表的編碼,但是如果修改了表的編碼,欄位編碼不會同步修改,需要手動修改

這裡修改編碼測試我將utf8 改為 gb2312  ,僅用於觀察修改後的情況(實際使用中可能是將gbk修改為utf8)

alter table `test`.`tablea` character set = gb2312 ;

-- 修改表編碼後,檢視建表語句

show create table `tablea`;

-- 可以看到輸出的建表語句中欄位單獨設定了編碼

create table `tablea`(

`id` int not null auto_increment,

`title` varchar(100) character set utf8 null,

)engine=innodb default charset=gb2312;

-- 需要手動修改欄位編碼

alter table `tablea`

change column `title` `title` varchar(100) character set 'gb2312' null default null ;

連線數時設定編碼

// pdo 連線

$db = new pdo('mysql:host=myhost;dbname=test', 'login', 'password',

array(pdo::mysql_attr_init_command => 'set names \'utf8\'')

); // mysqli連線

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "test");

mysqli_query($link,"set names 'utf8';");

通過以上幾步操作,基本可以保證資料庫使用過程中不會出現亂碼

使用php向mysql資料庫插入中文資料時,頁面中文顯示正常,但是資料庫裡面確實亂碼,該怎麼解決?

11樓:匿名使用者

這個問題不大。

主要匯出來是亂碼才問題。

你檢查過頁面是不是utf8的沒有,不行最上面加上<?php

header("content-type: text/html; charset=utf-8");//好像是utf-8,你可以試試utf8,gb2312總有一個可以的啦。

?>

你在資料庫裡看,你在資料庫裡打:

set names utf8

吧要是要顯示在到頁面你才用mysql_query('set names utf8');

再說一件事,資料庫裡亂碼好像還是比較常見的(只要是用那個phpmyadmin)

運作沒問題都沒事的。

12樓:匿名使用者

配置環境 資料庫建立 和 程式設計環境 編碼同時都設定成一樣的就沒問題了

13樓:呼倫貝爾品三農

可能你建立的資料庫不是utf8的,重新再建個資料庫試試

php mysql 資料庫顯示插入成功後 資料中 插入中文 是亂碼 utf8 gbk32 都不行

14樓:

看資料庫的字元如果是gbk那麼就

mysql_query("set names gbk");

如果是utf8那麼就

mysql_query("set names utf-8");

15樓:匿名使用者

php+mysql插入資料庫後亂碼,主要原因是字符集不一致。

php檔案儲存一個字符集;

php**中一個字符集;

連線資料庫物件可以指定一個字符集;

mysql也有字符集。

檢查你的字符集設定,保證4個字符集相同。在設計初期就應該選擇好字符集了,而不是發現問題再找原因,這是很麻煩的一件事。

16樓:

保持一致:

a.資料庫、表、欄位字符集

b.**檔案字符集

c.**中連線資料庫是指定的字符集

d.**中sql語句的字符集(若是頁面提交過來拼接的要注意頁面指定字符集並拼接前將**轉換)

17樓:免費模板網

把那個database刪除重新建個 試試 或者 在mysql裡面set names utf-8 試試

請教下大家,為什麼php我向mysql資料庫表中插入一列資料,裡面中文顯示的是亂碼?

18樓:匿名使用者

試試看在連線資料庫的mysql_select_db();這句話前加一句mysql_query("set names utf8");

19樓:eleven福滿多多

那就在php的檔案里加入一行:

header("content_type:text/html;charset=utf-8");

20樓:匿名使用者

mysql中不要寫成utf-8 要寫成utf8

php從mysql資料庫中查詢的資料,怎麼從id最大的開始輸

例如,資料表t toy user表中有欄位user id 主鍵 user name,desc三個欄位,則查詢從10到100的記錄如下 access資料庫和sqlserver資料庫 select user id,user name,descfrom select top100 user id,user...

php操作MySQL資料庫判斷多個資料表是否存在,不存在就建立要怎麼寫呢

servername localhost username username password password dbname mydb 建立連線 conn new mysqli servername,username,password,dbname 檢測連線 if conn connect err...

mysql往資料庫插入float型別的資料為什麼數字不對

float型別可以存浮點數,但是float有缺點,當不指定小數位數的時候,就會出現小數位數與想要的不一致,導致 報錯 在建立浮點型別的時候必須指定小數位數,float m,d m表示的是最大長度,d表示的顯示的小數位數。雖然兩個型別的值有相似也有不相似,但定義的是float 插入的值只要不出錯肯定是...