使用2-dim数组数据填充MySQL表

时间:2012-07-24 19:42:52

标签: php mysql

我想用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)。

2 个答案:

答案 0 :(得分:1)

您需要围绕变量名称使用花括号:

$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

答案 1 :(得分:1)

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);
}