- 締切済み
配列のbindValue方法について
<環境> サーバー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ループ では実行できないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- NARH
- ベストアンサー率82% (88/107)
確認していませんが $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 ]); > }