我想從XLS文件中抓取數據並將其轉儲到MySQL數據庫中。PHP多維數組到mySQL數據庫
我找到了一個php文件,它將獲取XLS的內容並將它們顯示爲網頁上的表格數據。我試圖修改此代碼以將我的數據插入到數據庫中。
這裏是做工作中的作用 - 而且我一直在試圖修改:
function dumpSQL($row_numbers=false,$col_letters=false,$sheet=0) {
$xlsData = '';
for($row=1;$row<=$this->rowcount($sheet);$row++) {
$rowheight = $this->rowheight($row,$sheet);
for($col=1;$col<=$this->colcount($sheet);$col++) {
if(!$this->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) {
// cell value
//$val = $this->val($row,$col,$sheet);
$xlsData[$row][$col] = $this->val($row,$col,$sheet);
}
}
}
// Make a MySQL Connection
mysql_connect("*******", "******", "*******") or die(mysql_error());
mysql_select_db("***********") or die(mysql_error());
$sql = "INSERT INTO BEER_LOCATIONS (LOCATION_NAME, LOCATION_STREET, LOCATION_CITY, LOCATION_STATE, LOCATION_ZIPCODE, LOCATION_PHONE, BEER_STYLE) VALUES ($xlsData)";
$result = mysql_query("
$sql
") or die(mysql_error());
}
我收到以下錯誤,當我運行此代碼: 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法
我也試圖刪除它獲得多維數組的部分,只是建立一個靜態版本的指南:
$xlsData[0][0] = "Hello World";
$xlsData[0][1] = "38380 - Thirteen Coins-Boren";
$xlsData[0][2] = "125 Boren Ave N";
$xlsData[0][3] = "Seattle";
$xlsData[0][4] = "WA";
$xlsData[0][5] = "98109";
$xlsData[0][6] = "2066822513";
$xlsData[0][7] = "34740 - Georgetown Keg - 1/2 Manny Pale";
$xlsData[1][0] = "Hello World";
$xlsData[1][1] = "38380 - Thirteen Coins-Boren";
$xlsData[1][2] = "125 Boren Ave N";
$xlsData[1][3] = "Seattle";
$xlsData[1][4] = "WA";
$xlsData[1][5] = "98109";
$xlsData[1][6] = "2066822513";
$xlsData[1][7] = "34740 - Georgetown Keg - 1/2 Manny Pale";
$xlsData[2][0] = "Hello World";
$xlsData[2][1] = "38380 - Thirteen Coins-Boren";
$xlsData[2][2] = "125 Boren Ave N";
$xlsData[2][3] = "Seattle";
$xlsData[2][4] = "WA";
$xlsData[2][5] = "98109";
$xlsData[2][6] = "2066822513";
$xlsData[2][7] = "WA";
$xlsData[3][0] = "Hello World";
$xlsData[3][1] = "86036 - Aafes Ft Lewis Class Vi";
$xlsData[3][2] = "Bldg 2202";
$xlsData[3][3] = "Fort Lewis";
$xlsData[3][4] = "WA";
$xlsData[3][5] = "98433";
$xlsData[3][6] = "2539644128";
$xlsData[3][7] = "42624 - Georgetown Keg - 1/4 Manny Pale";
我結束了同樣的錯誤。
我嘗試之前,將其插入到我的數據庫連載我的數據:
$xlsData = serialize($xlsData);
感謝您的幫助。
我在執行mysql_real_escape_string()時遇到了麻煩。它似乎需要包裝implode(),但是當我嘗試時出現錯誤。 列數並不在行1再次
感謝匹配值計數:
$sql = "INSERT INTO BEER_LOCATIONS (LOCATION_NAME, LOCATION_STREET, LOCATION_CITY, LOCATION_STATE, LOCATION_ZIPCODE, LOCATION_PHONE, BEER_STYLE) VALUES ('" . mysql_real_escape_string(implode("', '", $row)) . "')";
,當我嘗試,我得到這個錯誤。
這實際上並不是你要做的序列化。序列化是當你轉換一個對象/數組/等。到一個字符串,所以你可以存儲它,而不會丟失結構。當你在數據庫中存儲一組值時,你實際上只是調整它們以適應數據庫結構。 – Compeek 2011-04-25 20:22:25
感謝您提供有關序列化的信息。我刪除了該代碼。 – Mark 2011-04-25 23:50:10
您是否看到我的答案適合您?:) – Compeek 2011-04-26 02:52:21