性格いい人が優勝

<環境>
サーバーOS:CentOS
webサーバー:apache
データベース:MySQL
PHP5.2


現在、上記の環境でwebアプリを作成しています。

データベースにデータを登録する際にPDOを使用しているのですが、
二次元配列に格納されているデータを bindValue() できずに困っています。

データが多く、個数もその都度変化するので、二次元配列に格納しています。

簡易的ではありますが、以下のようなソースコードになります。



<ソースコード>

$dataArray → データが格納されている二次元配列

$columns = array(':id', ':name'); → プレイスホルダー名を格納している配列



for($i = 0; $i < count($dataArray); $i++)
{
$stt = $dataBase -> prepare('insert into tb_test(id, name) values(:id, :name)');

for($j = 0; $j < count($dataArray[ i ]); $j++)
{
$stt -> bindValue($columns[ $j ] ,$dataArray[ $i ][ $j ]);
}

$stt -> execute();
}


二次元配列の1行分のデータをループで bindValue() してから execute() で実行しています。
これを二次元配列の行数回繰り返しています。

apacheのエラーログには特に何も表示されていませんが、
登録処理ができません。

このような forループ では実行できないのでしょうか?

A 回答 (1件)

確認していませんが



$columns には要素は2つしか無いですよね?
> $columns = array(':id', ':name');

以下の部分で $columns[ $j ]  の$j は2以上にはならないのでしょうか?

> for($j = 0; $j < count($dataArray[ i ]); $j++)
> {
> $stt -> bindValue($columns[ $j ] ,$dataArray[ $i ][ $j ]);
> }
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!