中文亂碼問題經(jīng)常會出現(xiàn)
創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、綏芬河網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為綏芬河等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1、數(shù)據(jù)庫、數(shù)據(jù)表、字段 編碼格式要保持一致
2、如果在doc界面錄入數(shù)據(jù),要保持當(dāng)前編碼格式與數(shù)據(jù)表編碼格式一致
3、php讀取數(shù)據(jù)顯示,要保持文件的編碼格式、html頁面的編碼格式同數(shù)據(jù)庫一致,編碼格式為utf-8或gb2312或gbk
4、php連接數(shù)據(jù)庫之后mysql_query('set names gbk');
5、iconv("UTF-8","gbk",$str); 字符轉(zhuǎn)碼,保持一致
1.先下載然后安裝phpmyadmin。
2.在瀏覽器中輸入:127.0.0.1/phpmyadmin.若成功安裝phpmyadmin則顯示如下界面:
3.然后輸入數(shù)據(jù)庫用戶名和密碼,通常用戶名為root,密碼為安裝mysql時(shí)自己設(shè)置的密碼。默認(rèn)一般為root或者空。成功登陸后進(jìn)到如下界面:
4.接著點(diǎn)擊左上的數(shù)據(jù)庫出現(xiàn) 新建數(shù)據(jù)庫提示。
5.輸入數(shù)據(jù)庫名稱,這里示例輸入shujuku再點(diǎn)擊右邊創(chuàng)建 出現(xiàn)創(chuàng)建成功界面,shujuku也出現(xiàn)在左邊的數(shù)據(jù)庫中。
6.接著點(diǎn)左邊創(chuàng)建好的shujuku數(shù)據(jù)庫會出現(xiàn)新建數(shù)據(jù)表提示。
7.輸入biaoming, 字段數(shù)根據(jù)需要選擇,這里我們選6 確定出現(xiàn)。
8.在這我們設(shè)置好各字段類型,名字,ID等信息,點(diǎn)保存,數(shù)據(jù)表就建成了。
第一步:建立數(shù)據(jù)庫和數(shù)據(jù)表(按照自己的Excel數(shù)據(jù)設(shè)立字段)。
[sql] view plain copy print?
CREATE DATABASE php_excel;
USE php_excel;
CREATE TABLE IF NOT EXISTS php_excel(
id int(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gid varchar(20) NOT NULL,
stu_no varchar(20) NOT NULL,
name varchar(45) NOT NULL,
age int(4) NOT NULL
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
第二步:前臺index.php文件。
[html] view plain copy print?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titlephpexcel導(dǎo)入excel數(shù)據(jù)到MYSQL數(shù)據(jù)庫/title
/head
body
form name="frm1" action="insertdb.php" method="post" enctype="multipart/form-data"
input name="filename" type="file" /
input name="submit" type="submit" value="import" /
/form
/body
/html
第三步:向數(shù)據(jù)庫插入數(shù)據(jù)的insertdb.php文件。
[php] view plain copy print?
session_start();
header("Content-type:text/html;charset:utf-8");
//全局變量
$succ_result=0;
$error_result=0;
$file=$_FILES['filename'];
$max_size="2000000"; //最大文件限制(單位:byte)
$fname=$file['name'];
$ftype=strtolower(substr(strrchr($fname,'.'),1));
//文件格式
$uploadfile=$file['tmp_name'];
if($_SERVER['REQUEST_METHOD']=='POST'){
if(is_uploaded_file($uploadfile)){
if($file['size']$max_size){
echo "Import file is too large";
exit;
}
if($ftype!='xls'){
echo "Import file type is error";
exit;
}
}else{
echo "The file is not empty!";
exit;
}
}
require("./conn.php"); //連接mysql數(shù)據(jù)庫
//調(diào)用phpexcel類庫
require_once 'PHPExcel.php';
require_once 'PHPExcel\IOFactory.php';
require_once 'PHPExcel\Reader\Excel5.php';
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader-load($uploadfile);
$sheet = $objPHPExcel-getSheet(0);
$highestRow = $sheet-getHighestRow(); // 取得總行數(shù)
$highestColumn = $sheet-getHighestColumn(); // 取得總列數(shù)
$arr_result=array();
$strs=array();
for($j=2;$j=$highestRow;$j++)
{
unset($arr_result);
unset($strs);
for($k='A';$k= $highestColumn;$k++)
{
//讀取單元格
$arr_result .= $objPHPExcel-getActiveSheet()-getCell("$k$j")-getValue().',';
}
$strs=explode(",",$arr_result);
$sql="insert into php_excel(gid,stu_no,name,age) values ($strs[0],'$strs[1]','$strs[2]',$strs[3])";
echo $sql."br/";
mysql_query("set names utf8");
$result=mysql_query($sql) or die("執(zhí)行錯(cuò)誤");
$insert_num=mysql_affected_rows();
if($insert_num0){
$succ_result+=1;
}else{
$error_result+=1;
}
}
echo "插入成功".$succ_result."條數(shù)據(jù)?。?!br";
echo "插入失敗".$error_result."條數(shù)據(jù)?。?!";
其中conn.php代碼如下:
[php] view plain copy print?
$mysql=mysql_connect("localhost","root","") or die("數(shù)據(jù)庫連接失??!");
mysql_select_db("php_excel",$mysql);
mysql_query("set names utf8");
我的導(dǎo)入效果如下:
至此,從Excel文件讀取數(shù)據(jù)批量導(dǎo)入到Mysql數(shù)據(jù)庫完成。