EXCEL檔案匯入MYSQL出錯
本帖最後由 xuzuning 於 2013-11-14 13:36:39 編輯
在的表格很簡單,就12列資料,要匯入MYSQL
在網上找的代碼,自己測試的檔案和下載的檔案都在一個檔案夾裡,
有四個檔案1,data.xls 2.index.php 3,reader.php(下載的) 4,oleread.inc(下載的)
data.xls表格裡資料
num,names,years,season,groups,colornote,colornum,price,types,sizes,materials,note
有兩行記錄
index代碼如下
require_once 'reader.php'; // ExcelFile($filename, $encoding); $data = new Spreadsheet_Excel_Reader(); // Set output Encoding. $data->setOutputEncoding('gbk');
//”data.xls”是指要匯入到mysql中的excel檔案
$data->read('data.xls');
@ $db = mysql_connect('localhost', 'root', '123123') or
die("Could not connect to database.");//串連資料庫
mysql_query("set names 'gbk'");//輸出中文
mysql_select_db('test'); //選擇資料庫
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
//以下注釋的for迴圈列印excel表資料
/*
for ($j = 1; $j < = $data->sheets[0]['numCols']; $j++) {
echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo "\n";
*/
//以下代碼是將excel表資料【3個欄位】插入到mysql中,
//根據你的excel表欄位的多少,改寫以下代碼吧!
$sql = "INSERT INTO test
(
num,names,years,season,groups,colornote,colornum,price,types,sizes,materials,note
)
VALUES('".
$data->sheets[0]['cells'][$i][1]."','".
$data->sheets[0]['cells'][$i][2]."','".
$data->sheets[0]['cells'][$i][4]."','".
$data->sheets[0]['cells'][$i][5]."','".
$data->sheets[0]['cells'][$i][6]."','".
$data->sheets[0]['cells'][$i][7]."','".
$data->sheets[0]['cells'][$i][8]."','".
$data->sheets[0]['cells'][$i][9]."','".
$data->sheets[0]['cells'][$i][10]."','".
$data->sheets[0]['cells'][$i][11]."','".
$data->sheets[0]['cells'][$i][12]."')";
echo $sql.'< br />';
$res = mysql_query($sql);
}
?>
運行index.php報以下錯誤
Fatal error: Call to a member function read() on a non-object in D:\AppServ\www\aaee\index.php on line 4
分享到: 更多
------解決方案--------------------
第 4 行 $data->read('data.xls');
這和 $data 是在哪裡執行個體化的?
顯然你也太粗心了,從網上複製的代碼也不認真整理一下
那句 $data = new Spreadsheet_Excel_Reader(); 不還在第二行的注釋中嗎?