簡體   English   中英

如何在數據庫中插入多個數組行?

[英]how to insert the multiple array rows in the database?

我正在處理動態數組,我需要在數據庫中插入這些數組。當我將動態數組插入數據庫而不是插入所有行時,它只會在數據庫中插入一行。

下面是包含結果的數組

$asma[]=GA::select($ga->population,'total',3);

以下是用於在數據庫表ga插入多個數組的代碼

<?php 
//code not tested check it

//Logic is changed instead of for looping many times
$data = array();

$j = 0;

foreach($asma as $key => $value)
{
$i = 0;

foreach ( $value as $ind => $hObject )
{
    if($i==0)
    {
        $data[$j]['fe'] = mysql_escape_string($hObject->Voltage);

    }else{

        $data[$j]['fe'.$i] = mysql_escape_string($hObject->Voltage);
    }

    $i++;

    $data[$j]['fe'.$i] = mysql_escape_string($hObject->Duration);
    $i++;

    $data[$j]['fe'.$i] = mysql_escape_string($hObject->Number);
    $i++;

}

$j++;

}// endforeach

//multiple array
 foreach($data as $array)
 {


 //unique array
//$array3 = array_merge($Voltage,$Duration,$Number);

$fields = implode(',',array_keys($array));

//if you want append any new field append it
$fields .= ','.'timestamp,username';

$vals = "'".implode("','",array_values($array))."'";

//if you want append any new values append it
$vals .= ",'".time()."','".$login_session."'";


$q = "INSERT INTO ga (".$fields.") VALUES(".$vals.")";

$result = mysql_query($q);
if ( ! $result ) {
    die( 'Insert failed ' . mysql_errno() . ' ' . mysql_error() );
}
 }

每當用戶輸入3時,之后計算結果將存儲在數組asma之后存儲結果將存儲在表ga ,該表應為三行,但表中僅插入一行並顯示,而不是三行(如果用戶在文本中輸入任何值)框。

我不確定您的意思,我認為是這樣的插入語句:

INSERT INTO `ga` (`field1`, `field2`, `field3`, `etc`)
VALUES (value11, value21, value31, more_values1),
    (value12, value22, value32, more_values2),
    (value13, value23, value33, more_values3)

因此,您應該使用foreach循環來創建values語句。

$sql = "INSERT INTO `ga` (`voltage`, `duration`, `number`, `timestamp`, `username`) VALUES ";

$values = "";
foreach ($asma as $row) {
    $values .= ($values != "" ? "," : "") . "(" .
            "'" . $row['voltage'] . "', " .
            "'" . $row['voltage'] . "', " .
            "'" . $row['number'] . "', " .
            "'" . time() . "', " .
            "'" . $login_session . "'" .
            "),";
}

$sql .= substr($values, 0, -1) . ";";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM