Вы не указали, что именно вы подразумеваете под «не работает» (то есть вы не описали, что происходит неправильно или какое поведение вы видите), но вот что я могу наблюдать только из кода:
1) У вас есть (как представляется) опечатка: я ожидаю, что example_costs[$index];
действительно должно быть $example_costs[$index];
.
2) Предполагая, что 1 исправлено, вы также перезаписываетезначения переменных $example
и $example_costs
, которые вы пытаетесь зациклить, пока цикл все еще продолжается.Ясно, что это уничтожит исходные массивы и сделает невозможным их повторное использование в следующий раз, когда он попытается выполнить цикл.
В этой ситуации и в качестве общего принципа хорошей практики кодирования не используйте повторно имена переменныхпредставлять две разные вещи в коде - особенно когда вы все еще используете их для их первоначального назначения!
На самом деле вам не нужны эти отдельные переменные в выражении bind.Это должно сделать работу:
$stmt = $conn->prepare('INSERT INTO vv(event_id, vvType, vvCosting) VALUES (?, ?, ?)');
foreach ($example as $index => $value) {
$stmt->bind_param('iss', $id, $value, $example_costs[$index]);
$stmt->execute();
}
Остальное либо неверно (например, перезапись массива $example
), либо избыточно (например, $id = $id
- присвоение переменной ее собственного значения являетсясамо определение бессмысленно).