I'm using the following code to insert a bunch of records into a sqlite database:
try {
$dir = 'sqlite:file_name';
$dbh = new PDO($dir) or die("cannot open the database");
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$query_str = 'DELETE FROM mytable; INSERT INTO mytable (field1, field2, field3, field4, field5, field6, field7, field8, field9) VALUES ';
$query = $dbh->prepare( $query_str . $valuesPlaceholders);
$sqlResponse = $query->execute($valuesArr);
}
catch (PDOException $e) {
if ($e->getCode() == 1062) {
echo 'here';
} else {
throw $e;
}
This is the $valuesPlaceholders:
(?, ?, ?, ?, ?, ?, ?, ?, ?),(?, ?, ?, ?, ?, ?, ?, ?, ?),(?, ?, ?, ?, ?, ?, ?, ?, ?)
This is my $valuesArr
:
Array
(
[0] => Array
(
[0] => temperature
[1] => M1
[2] => 40110
[3] => 100
[4] => 500
[5] => 200
[6] => 300
[7] => 1
[8] => C
)
[1] => Array
(
[0] => humidity
[1] => M1
[2] => 40114
[3] => 100
[4] => 500
[5] => 200
[6] => 300
[7] => 1
[8] => %
)
[2] => Array
(
[0] => param111
[1] => M2
[2] => 40115
[3] => 100.5
[4] => 500
[5] => 200
[6] => 300
[7] => 0.1
[8] => uni
)
)
This gives me the following errors:
Array to string conversion
PDOStatement::execute(): SQLSTATE[HY000]: General error: 25 column index out of range
The table structure consists of 10 columns, including 1 id
column, which is auto increment.
What am I doing wrong ?