[英]Insert each value from multidimensional array into a database
我正在使用 phpexcelreader 讀取一個 excel 文件並獲得一個多維數組作為回報。
現在我想將該記錄數組保存到我的數據庫中。 我正在獲取數組,但我不明白如何將每個值輸入到數據庫中。 這是我得到的數組
array (
1 =>
array (
1 => 'Date',
2 => 'Customer Name',
3 => 'Address',
4 => 'Phone Number',
5 => 'Email ID',
6 => 'Amount',
),
2 =>
array (
1 => '41577',
2 => 'Gary E. Ross',
3 => 'daf, GA 31907',
4 => '12344',
5 => 'geross50@gmail.com',
6 => 'CAD50',
),
3 =>
array (
1 => '41577',
2 => 'JEAN h. LUGAR',
3 => '123, N.C, 28312',
4 => '111111',
5 => 'jhlas@msn.com',
6 => 'CAD143.28',
)
這是我為獲取上面的數組而編寫的代碼
if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'],$target_path))
{
$read_excel="upload/".$_FILES['fileToUpload']['name'];
//echo $read_excel;
$excel = new PhpExcelReader;
$excel->read($read_excel);
$data = $excel->sheets[0];
$excelArray = $excel->sheets[0]['cells'];
echo '<pre>';
var_export($excel->sheets[0]['cells']);
echo '</pre>';
foreach($excelArray as $key=>$record)
{
for($i=1;$i<=count($record);$i++)
{
if(isset($record[$i])){
echo $record[$i]. "</br>";
}
}
/* foreach($record as $innerKey => $innerRecord)
{
echo $innerRecord. "</br>";
} */
}
}
我正在使用 foreach 來獲取值,但它沒有給我想要的結果。
要獲取數組中的值,請嘗試這樣,
foreach ($array as $key => $val) {
foreach ($val as $key1 => $val1) {
echo $val1[$key1];
}
}
foreach ($excelArray as $key=>$val) {
$insertData='';
foreach ($val as $key1 => $value) {
$insertData.= "'".$value."',";
}
echo $query = $insertData;
echo "<br/><br/>";
}
代碼:
<?php
$array = array (
1 =>
array (
1 => 'Date',
2 => 'Customer Name',
3 => 'Address',
4 => 'Phone Number',
5 => 'Email ID',
6 => 'Amount',
),
2 =>
array (
1 => '41577',
2 => 'Gary E. Ross',
3 => 'daf, GA 31907',
4 => '12344',
5 => 'geross50@gmail.com',
6 => 'CAD50',
),
3 =>
array (
1 => '41577',
2 => 'JEAN h. LUGAR',
3 => '123, N.C, 28312',
4 => '111111',
5 => 'jhlas@msn.com',
6 => 'CAD143.28',
)
);
echo "<b>\$array values:</b><br/><br/>";
foreach ($array as $key => $val) {
foreach ($val as $key1 => $val1) {
//you will get values here.
echo "<pre>$key1 => $val1</pre>";
}
echo "<br/>";
}
?>
輸出:
$array values:
1 => Date
2 => Customer Name
3 => Address
4 => Phone Number
5 => Email ID
6 => Amount
1 => 41577
2 => Gary E. Ross
3 => daf, GA 31907
4 => 12344
5 => geross50@gmail.com
6 => CAD50
1 => 41577
2 => JEAN h. LUGAR
3 => 123, N.C, 28312
4 => 111111
5 => jhlas@msn.com
6 => CAD143.28
要將記錄插入數據庫,您需要使用以下代碼:
<?php
$a=array (
1 =>
array (
1 => 'Date',
2 => 'Customer Name',
3 => 'Address',
4 => 'Phone Number',
5 => 'Email ID',
6 => 'Amount',
),
2 =>
array (
1 => '41577',
2 => 'Gary E. Ross',
3 => 'daf, GA 31907',
4 => '12344',
5 => 'geross50@gmail.com',
6 => 'CAD50',
),
3 =>
array (
1 => '41577',
2 => 'JEAN h. LUGAR',
3 => '123, N.C, 28312',
4 => '111111',
5 => 'jhlas@msn.com',
6 => 'CAD143.28',
));
$columns=$a[1];
$range=count($a);
$start=min(array_keys($a))+1;
$j=0;
//echo "<pre>";print_r($a[$start]);exit;
for($i=$start; $i<= $range; $i++){
$data=" ";
$data.="(";
foreach($a[$i] as $k=>$v){
$data.="'".$v."', ";
}
$data=substr($data, 0,-2);
$data.=")";
$dataArray[$j]=$data;
$j++;
}
$columnsName="( '".implode('\',\'',$columns)."' )";
$values=implode(',',$dataArray);
echo $query="INSERT INTO `table_name` ".$columnsName." VALUES ".$values;
// To insert the records in Database
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB"; // Database name
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$conn->query($query) or die ($conn->error); //This will insert the records into database (table_name)
$conn->close();
?>
如果對您有幫助,請將其標記為答案,謝謝。 :)
用這個替換你的代碼它是完全動態的,無論你的字段是否在未來追加..
<?php
$a=array (
1 =>
array (
1 => 'Date',
2 => 'Customer Name',
3 => 'Address',
4 => 'Phone Number',
5 => 'Email ID',
6 => 'Amount',
),
2 =>
array (
1 => '41577',
2 => 'Gary E. Ross',
3 => 'daf, GA 31907',
4 => '12344',
5 => 'geross50@gmail.com',
6 => 'CAD50',
),
3 =>
array (
1 => '41577',
2 => 'JEAN h. LUGAR',
3 => '123, N.C, 28312',
4 => '111111',
5 => 'jhlas@msn.com',
6 => 'CAD143.28',
));
$columns=$a[1];
$range=count($a);
$start=min(array_keys($a))+1;
$j=0;
//echo "<pre>";print_r($a[$start]);exit;
for($i=$start; $i<= $range; $i++){
$data=" ";
$data.="(";
foreach($a[$i] as $k=>$v){
$data.="'".$v."', ";
}
$data=substr($data, 0,-2);
$data.=")";
$dataArray[$j]=$data;
$j++;
}
$columnsName="( '".implode('\',\'',$columns)."' )";
$values=implode(',',$dataArray);
echo $query="Insert into".$columnsName." Values ".$values;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.