according to this example for prepared statements I first bind parameters and then set values for the parameters.
Let's assume I have a 2-dim array $alias
$array1 = [
'id' => 1,
'tstamp' => 123456789,
'alias' => '$alias',
];
$array2 = [
'id' => 1,
'tstamp' => 123456789,
'alias' => '$alias2',
];
$alias = [$array1, $array2];
Why is this code working
$insert = 'INSERT INTO abcdef VALUES (?,?,?)';
$insertStmt = $conn->prepare($insert);
foreach ($alias as $array) {
$insertStmt->bind_param('iis', $array['id'], $array['tstamp'], $array['alias']);
$insertStmt->execute();
}
and this not?
$insert = 'INSERT INTO abcdef VALUES (?,?,?)';
$insertStmt = $conn->prepare($insert);
$insertStmt->bind_param('iis', $array['id'], $array['tstamp'], $array['alias']);
foreach ($alias as $array) {
$insertStmt->execute();
}
If I have to bind the parameters all the time there's a lot more trafic, isn't it?