0

MySQLテーブルに2次元配列データを入力したい:

    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'を確認すると、次のエントリ[0] [1][2][3]を含む1行だけが表示されます。この問題を解決するにはどうすればよいですか?

更新:もう1つは、$ arr [$ i] [] =$val;を使用することです。アレイにデータを入力します。var_dump($ arr)はArrayint(0)を返します。

4

2 に答える 2

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
于 2012-07-24T19:47:10.177 に答える
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);
}
于 2012-07-24T19:49:15.830 に答える