CSVファイルのインサートについて
PHPでCSVファイルのインサートを考えています。
下記は接続、インサートが可能でした。
php
1<?php 2$mysqli = new mysqli('localhost', 'root', '1234', 'database'); 3/* 接続状況をチェックします */ 4if (mysqli_connect_errno()) { 5 printf("Connect failed: %s\n", mysqli_connect_error()); 6 exit(); 7} 8 9$stmt = $mysqli->prepare("INSERT INTO test VALUES (?, ?, ?)"); 10$stmt->bind_param('sss', $div, $no, $sub); 11$div = '1'; 12$no = '2'; 13$sub = "3"; 14/* プリペアドステートメントを実行します */ 15$stmt->execute(); 16printf("%d Row inserted.\n", $stmt->affected_rows); 17/* ステートメントと接続を閉じます */ 18$stmt->close(); 19?> 20
上記の結果は、
1 Row inserted.
となり、ちゃんとインサート出来ていました。
しかし、今回はCSVファイルのインサートになるため、
$div = '1';
$no = '2';
$sub = "3";
のように分かれてはいません。
CSVファイルのように纏まったデータを分解してインサートするテストとして下記のように、$H='4,5,6';を組んでみました。
php
1<?php 2$mysqli = new mysqli('localhost', 'root', '1234', 'database'); 3/* 接続状況をチェックします */ 4if (mysqli_connect_errno()) { 5 printf("Connect failed: %s\n", mysqli_connect_error()); 6 exit(); 7} 8$stmt = $mysqli->prepare("INSERT INTO test VALUES (?, ?, ?)"); 9$stmt->bind_param('sss', $H['0'], $H['1'], $H['2']); 10$H='4,5,6'; 11/* プリペアドステートメントを実行します */ 12$stmt->execute(); 13printf("%d Row inserted.\n", $stmt->affected_rows); 14/* ステートメントと接続を閉じます */ 15$stmt->close(); 16?> 17 18
結果
-1 Row inserted.
という表示がされ、実際にはインサート出来ていません。
どこが間違っているのでしょうか?
今回、PHP7に移行したため、mysql関数を離れ、初めてPDOを使っています。
初歩的なことかと思いますが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/14 05:51
2017/05/14 06:10
2017/05/14 06:29
2017/05/14 06:42
2017/05/14 06:56
2017/05/14 07:28
2017/05/14 07:41