Обновленный код:
if (isset($_POST['submit'])) { /* Create a prepared statement */ $query = "INSERT INTO log_dates(week_date, crew_chief, monday_crew) values(?,?,?)"; $stmt = mysqli_prepare($connection, $query); $returnedData = $_POST['data']; foreach($returnedData as $data) { $week_date = $data['week_date']; $crew_chief = $data['crew_chief']; $monday_crew = $data['monday_crew']; $stmt->execute(); } mysqli_stmt_bind_param($stmt, 'sss', $week_date, $crew_chief, $monday_crew); /* Execute it */ mysqli_stmt_execute($stmt); /* Close statement */ mysqli_stmt_close($stmt); } // end if
Вот как выглядит мой массив POST:
Array ( [0] => Array ( [week_date] => 2013-07-08 - 2013-07-14 ) [1] => Array ( [crew_chief] => Alan ) [2] => Array ( [monday_crew] => dd ) )
Это не то, как вы привязываете параметры. Вы производите несколько параметров в значение SINGLE. Вызов связывания должен быть
mysqli_stmt_bind_param($stmt, 'ss', $foo, $bar); ^^--two params ^^^^^^^^^^---two values foreach($returnedData as $data) { $bar = $data['crew_chief']; $foo = $data['week_date']; $stmt->execute(); }
как только переменные привязаны, просто присваивание им новых значений приведет к следующему вызову -> execute () оператора, чтобы получить эти новые значения.
У меня есть идея для вас. Вы должны иметь представление о том, что вы делаете.
Прежде всего вам нужно разработать чистый SQL-запрос, который вы хотите запустить с SQL-сервером. Без подготовленных операторов, без mysqli, без PHP. Чистый SQL.
SQL – это ваша проблема, а не API для отправки на сервер. И затем, постепенно, шаг за шагом, продолжайте разработку необходимой вам программы. Вот приблизительный контрольный список:
Вы можете попросить о помощи для любого этапа сверху, но важно следовать списку. Кажется, вы просите последний элемент, который не завершил первый.
Надеюсь, поможет.