我得到了这样的数组:
Array
(
[0] => Array
(
[0] => A
[1] => 1
[2] => Too High
)
[1] => Array
(
[0] => AB
[1] => 7
[2] => OK
)
[2] => Array
(
[0] => B
[1] => 10
[2] => Too High
)
)
我正在尝试使用此代码将上面的数组插入到我的数据库中,我想在没有列名的情况下执行此操作,因为列可以随时更改(用户可以将新字段添加到表中),数组长度与字段数量:
if(is_array($FINALRESULT)) {
$queryi = "INSERT INTO tempresult VALUES ";
$value = array();
for ($i = 0; $i < 4; ++$i) {
for ($j=0; $j < 3; $j++) {
$value[] = mysql_real_escape_string("($FINALRESULT[$j])");
}
}
$queryi .= implode(',', $value);
mysql_query($queryi) or exit(mysql_error());
}
但是我收到了这样的通知:
Notice: Array to string conversion in C:\xampp\htdocs\Livestockmapping(edit)\dsssawprocess.php on line 104 Unknown column 'Array' in 'field list'
最佳答案
你可以试试这个:
$FINALRESULT = [
['A', 1, 'Too High'],
['AB', 7, 'OK'],
['B', 10, 'Too High'],
];
$all_values = [];
$query = "INSERT INTO tempresult VALUES ";
foreach($FINALRESULT as $key) {
$row_values = [];
foreach($key as $s_key => $s_value) {
$row_values[] = '"'.$s_value.'"';
}
$all_values[] = '('.implode(',', $row_values).')';
}
//Implode all rows
$query .= implode(',', $all_values);
echo $query;
结果:
INSERT INTO tempresult VALUES ("A","1","Too High"), ("AB","7","OK"), ("B","10","Too High")
还可以使用 PDO 和准备好的语句来避免 SQL 注入(inject)。
在您的代码中,您需要 $FINALRESULT[$i][$j]
因为它是一个 2 级数组。
关于php - 使用多维数组 PHP 插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39181693/