當前位置:首頁 » 編程語言 » mysqlphp字元集

mysqlphp字元集

發布時間: 2022-09-14 07:28:05

php使用pdo連接mysql資料庫如何設置發送的字元集

和Mysql類裡面的用法一樣,他們只過不過是我們鏈接資料庫的中間橋梁變了,本質並沒有變,還是對資料庫進行操作,而操作的要利用SQL語句,所以這里可以用同樣的mysql語句即可,只不過執行函數變了!在mysql類裡面,我們用mysql_query(「SET NAMES gbk」);設置字元集編碼為gbk啦!在PDO裡面我們用$db->query("SET NAMES gbk");當然也有其他的函數也可以。http://wenku..com/view/57270c36a32d7375a4178002.html這里有網路文庫關於PDO的解釋和簡單使用!

⑵ PHP與mysql連接後顯示中文亂碼

我想知道一件事情。

你能不能把亂碼的情況發出圖片呢

你看看數據表是不是亂碼。

我挺想知道的

這樣我好判斷問題啊

如果你的亂碼是這樣

那麼你的動態代碼就這么寫:

<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

<!--聲明頭文件,嘿嘿header管不到這里啊。所以你得自己聲明了,字元集為utf8-->

<?php

header("Content-Type:text/html;charset:utf-8");

$link=mysql_connect("127.0.0.1","root","");

mysql_select_db("s",$link);

mysql_query("SETNAMESUTF8");

$sql="SELECT*FROMs";

$result=mysql_query($sql);

//print_r($row=mysql_fetch_array($result));

while($row=mysql_fetch_array($result))

{

echo"<tableborder='1'>";

echo"<tr><td>序號</td><td>學號</td><td>姓名</td><td>班級</td></tr>";

echo"<tr><td>".$row['id']."</td><td>".$row['xh']."</td><td>".$row['xm']."</td><td>".$row['bj']."</td></tr>";

echo"</table>";

}

?>

如果不行繼續追問就行了

記得貼出圖片啊。

⑶ php不能往mysql資料庫添加漢字,只能添加字母和數字

php+mysql數據時我們必須保證提交到資料庫的編碼與mysql編碼是一致的這樣才可以保存中文不出現問號亂碼問題,下面我先整理兩個讓mysql與頁面保證編碼一致的方法。
解決中文插入資料庫亂碼的方法:
直接把中文轉變成utf-8格式,大多是這個問題導致的。
代碼如下復制代碼
$str = iconv('gbk','utf-8',$str);
如果還不行檢查網頁編碼是否正確:
代碼如下復制代碼
<?php
header("Content-Type:text/html;charset=utf-8");
?>
建表:
代碼如下復制代碼
Create TABLE `net_city` (
`cityid` smallint(4) NOT NULL auto_increment,
`cityname` varchar(80) NOT NULL default '',
`provinceid` smallint(2) NOT NULL default '0',
`inarea` varchar(5000) NOT NULL default '',
`outarea` varchar(5000) NOT NULL default '',
`tel` varchar(400) NOT NULL default '',
PRIMARY KEY (`cityid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
PHP里的代碼:
$conn=mysql_connect("localhost", "用戶名", "密碼");
mysql_query("set names 'utf8'",$conn);
mysql_select_db(" www.111cn.net 數據名",$conn);
$exec="insert into net_city (cityname,inarea,outarea,tel) values ('".$link_cityname."','".$link_inarea."','".$link_outarea."','".$link_tel."')";
$result=mysql_query($exec,$conn);
if($result){
echo "1";
}else{
echo "0";
}
mysql_close($conn);
後來我試了試全部都用成gbk的,也是可以的~
在查詢數據時我們直接使用mysql_query()來設置
mysql_query("SET NAMES GBK"); //GBK處為編碼設置
例子
下面是 "insert.php" 頁面的代碼:
代碼如下復制代碼
<?php$con = mysql_connect("localhost","peter","abc123");
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("my_db", $con);
mysql_query("SET NAMES GBK"); //GBK處為編碼設置
$sql="INSERT INTO person (FirstName, LastName, Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con))
{ die('Error: ' . mysql_error()); }
echo "1 record added";
mysql_close($con)
?>

⑷ PHP mysql 如何將從數據中讀入的中文亂碼轉換成中文字元

要解決亂碼首先需要知道出現亂碼的原因:
一、PHP+MySQL出現中文亂碼的原因。
1. MYSQL資料庫的編碼是utf8,與PHP網頁的編碼格式不一致,就會造成MYSQL中的中文亂碼。
2. 使用MYSQL中創建表、或者選擇欄位時設置的類型不是utf8,而網頁編碼不是utf8,也可能造成MYSQL中文亂碼.
3. PHP頁面的字元集與資料庫的編碼不一致。
4. PHP連接MYSQL資料庫,操作是設定的語句指定的編碼和頁面編碼,PHP頁面編碼不一致。
5. 用戶提交的HTML頁面編碼,和顯示數據的頁面編碼不一致 ,就肯定會造成PHP頁面亂碼.
二、解決中文亂碼:
1. 網頁編碼設置。一般在HTML代碼中的文件頭<html>中加入屬性:
<meta http-equiv=」Content-Type」 content=」text/html; charset=utf-8″>
保證,網頁是"utf-8"編碼。
2. PHP代碼設置。在php代碼的開始部分加入以下代碼:
header(」Content-type: text/html;charset=utf-8″);
且要求保存的文件編碼方式是utf-8,這樣就保證了該文件也是utf-8編碼。
3. 資料庫中表的欄位中存儲中文的部分,要設置為utf8_general_ci類型。
4.PHP在連接資料庫操作時,要設置操作的欄位類型為utf8,設置方法如下:
mysql_connect(』localhost』,'user』,'password』);mysql_select_db(』db』);mysql_query(」set names utf8;」); //**設置字元集***

⑸ php創建mysql資料庫時候如何設置字元集

我來給你做一個綜合解釋吧。 在正常情況下。 PHP腳本 HTML 已經瀏覽器 然後就是資料庫。 都有自己的字元集。何謂字元集。我想你如果是一個真正想熱衷於學PHP 那麼你應該花一定的時間去了解一下字元集的問題。 就好比我做第一個項目。因為字元集搞的死去活來。 1.PHP的字元集。一般PHP網頁的是嵌套在html頁面以內。那麼如果在沒有沖突的情況下可以使用 header方面設置。比如 3.資料庫的問題。mysql_query("set names gbk"); 這句話意思就是說,在操作資料庫的時候已這個字元集去讀寫。當然這個字元集要對應你的頁面的字元集哦。 4.瀏覽器。瀏覽器的問題是最萬惡的,因為每個瀏覽器默認的是gb2312.當然不同的瀏覽器是不同的。所以要想成為一名優秀的程序員,寫出優質的代碼。你還得去了解每個瀏覽器的差別。當然目前是不需要的,當然這個問題你慢慢學習。寫代碼的過程中會慢慢了解到的。你要做的就是將所有使用字元集確保一致性

⑹ PHP如何將mysql中字元集latin1的數據寫入另一個字元為utf8的資料庫中而不顯示亂碼

<?php
mysql_connect('localhost','root','');
mysql_select_db('xx');
mysql_query("set names utf8");//轉換字元集
?>
汗,沒看到後面的話,上面當我沒說
怎麼說你原庫不能動。
你數據用PHP顯示出來是不是亂碼,這個才問題
不是。。。你瞎折騰啥子。這是資料庫問題。

⑺ php讀取mysql中文數據出現亂碼的解決方法

1.PHP頁面語言本身的編碼類型不合適,這時候,你直接在腳本中寫的中文肯定是亂碼,不用說資料庫了
解決方法:選擇'UTF8'或者'gb2312',這樣客戶瀏覽器會自動選擇並出現正確的中文顯示。注意:'UTF8'或者'gb2312'都可以正確顯示中文的。
2.資料庫MySQL中的編碼類型不正確。
解決方法:創建資料庫的時候,MySQL
字元集選擇'UTF8',MySQL
連接校對選擇utf8_general_ci,這樣創建的資料庫用來存儲中文肯定沒有問題,
否則,你的中文首先在MySQL中就是亂碼,更不要期望它會給你在PHP頁面中顯示正確。
3.與平時的腳本編輯環境有關。比如,有些內容是自己用word寫的,有些是用記事本寫的,有些用editplus、ultraplus等文本編輯器。有時候就直接在DW中寫中文了,
解決方法:盡量用同一種編輯器。如果是拷貝來得既有的內容,建議用ultraplus中的編碼轉換功能把它轉換成utf8或者gb2312。
到底轉換成什麼類型並不重要,關鍵要求你的PHP
WEB應用程序中的編碼要一致就行。
4.編程訪問
MySQL時,建議添加一行代碼:mysql_query("SET
NAMES
'GBK'");

⑻ php中使用mysqli創建資料庫的時候怎麼指定字元集和排序規則

字元集很簡單,但是數據的排序需要通過SQL語句來協助完成,ORDER BY 語句,代碼如下:

//假設你已經成功連接了資料庫($mysqli變數假設為連接的資源句柄)
//通過對象方式設置字元編碼
$mysqli->set_charset('utf8');
//通過函數方式設置字元編碼
mysqli_set_charset($mysqli,'utf8');

//那麼接下來是數據排序的話,需要編寫一條SQL查詢語句(DESC倒序排列|ASC正序排列)
$sql="SELECT`欄位`FROM`表名`WHERETRUEORDERBY`欄位`DESC;";

如果還有什麼問題,歡迎追問~

⑼ php創建mysql資料庫時候如何設置字元集

我來給你做一個綜合解釋吧。
在正常情況下。
PHP腳本 HTML 已經瀏覽器 然後就是資料庫。
都有自己的字元集。何謂字元集。我想你如果是一個真正想熱衷於學PHP
那麼你應該花一定的時間去了解一下字元集的問題。
因為無論你以後做什麼項目開發什麼網站都是要牽涉到字元集。
就好比我做第一個項目。因為字元集搞的死去活來。
好進入正題。怎麼解決問題呢?
1.PHP的字元集。一般PHP網頁的是嵌套在html頁面以內。那麼如果在沒有沖突的情況下可以使用
header方面設置。比如<?php header ... ?>
2.HTML的字元集,一般是網頁的優先字元集,這個問題是牽涉到你的網站是什麼定位,比如:你的網站僅僅適合國內的客戶。那麼用gbk 或者gb2312.如果想老外也開湊湊熱鬧的話,就用utf-8.至於怎麼設置這個字元集,你可以在<meta>這個標記中看到。
3.資料庫的問題。mysql_query("set names gbk"); 這句話意思就是說,在操作資料庫的時候已這個字元集去讀寫。當然這個字元集要對應你的頁面的字元集哦。
4.瀏覽器。瀏覽器的問題是最萬惡的,因為每個瀏覽器默認的是gb2312.當然不同的瀏覽器是不同的。所以要想成為一名優秀的程序員,寫出優質的代碼。你還得去了解每個瀏覽器的差別。當然目前是不需要的,當然這個問題你慢慢學習。寫代碼的過程中會慢慢了解到的。

你要做的就是將所有使用字元集確保一致性

問題就這些吧,如果有什麼問題可以繼續問哦。凡是對PHP有熱情的人。我都會盡全力幫一下。哈哈。因為這個加物以類聚。還有這個內容絕對不是復制粘貼的。

⑽ PHP顯示MySQL數據亂碼,字元集設置都是UTF8,資料庫也是UTF8,一直找不到問題在哪裡,代碼見詳細,求大神

php+mysql的utf-8中文亂碼問題的解決方法
問題匯總:
1.mysql資料庫默認的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼.
2.MYSQL中創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
3.MYSQL創建表時添加欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
4.用戶提交頁面的編碼與顯示數據的頁面編碼不一致,就肯定會造成PHP頁面亂碼.
5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
6.PHP頁面字元集不正確.
7.PHP連接MYSQL資料庫語句指定的編碼不正確.
使用mysql+php產生亂碼的原因都了解得很清楚了,那麼解決就不困難了.
針對不同問題的解決方法:
1.mysql資料庫默認的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼.
修改資料庫編碼,如果是資料庫編碼不正確,可以在phpmyadmin 執行如下命令:
Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

以上命令就是將test資料庫的編碼設為utf8.
2.MYSQL中創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
修改表的編碼:
Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

以上命令就是將一個表category的編碼改為utf8.
3.MYSQL創建表時添加欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼.
修改欄位的編碼:
Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

以上命令就是將test表中 dd的欄位編碼改為utf8.
4.用戶提交頁面的編碼與顯示數據的頁面編碼不一致,就肯定會造成PHP頁面亂碼.
如果是這種情況容易解決,只需檢查下頁面,修改源文件的charset即可.
5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
這種情況也是修改頁面charset即可.
6.PHP頁面字元集不正確.
為了避免PHP頁面亂碼的發生,PHP頁面開始第一句
header("content-type:text/html; charset=utf-8");

//強行指定頁面的編碼,以避免亂碼

7.PHP連接MYSQL資料庫語句指定的編碼不正確.
在連接資料庫的語句中.
mysql_connect('localhost','user','password');

mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 資料庫之後加多這一句

熱點內容
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:513
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:347
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:212
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:928
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:829
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840
vb6遍歷文件夾 發布:2025-01-12 05:58:13 瀏覽:366
c在C語言中代表什麼 發布:2025-01-12 05:52:59 瀏覽:48