我想用 2-dim 数组数据填充 MySQL 表:
for($i=0; $i<sizeof($arr); $i++)
{
$query1="INSERT INTO `fsTest` (`id`,`xxx`,`yyy`,`zzz`)
VALUES('$arr[$i][0]','$arr[$i][1]','$arr[$i][2]','$arr[$i][3]');";
$result1=DatabaseConnector::ExecuteQuery($query1);
}
当我检查“fsTest”表时,我只能看到 1 行包含以下条目 [0] [1] [2] [3]。 如何解决这个问题?
更新:另一件事是我使用 $arr[$i][] = $val;填充数组。 var_dump($arr) 返回 Arrayint(0)。
最佳答案
您的变量名称需要用大括号括起来:
$query1 = "
INSERT INTO `fsTest` (`id`,`xxx`,`yyy`,`zzz`)
VALUES('{$arr[$i][0]}','{$arr[$i][1]}','{$arr[$i][2]}','{$arr[$i][3]}');
";
否则,解析器会很懒,会首先找到 $arr[$i]
并尝试将该值作为字符串插入,而不是 $arr[$i][0]
.
一个简单的例子演示了这种行为:
$array = array( array( 'value'));
echo "$array[0][0]"; // Fails, Array to string conversion
echo "{$array[0][0]}"; // Prints value
关于php - 用 2 维数组数据填充 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638176/