[英]PHP prepared insert statement from multidimensional array
更新的代碼:
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 ) )
那不是綁定參數的方式。 您正在將多個參數拍打成單個值。 綁定調用應為
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 Server運行的純SQL查詢。 沒有准備好的語句,沒有mysqli,沒有PHP。 干凈的SQL。
現在,SQL是您的問題,而不是將其發送到服務器的API。 最后,逐步開發所需的程序。 這是一個粗略的清單:
您可以從上面的任何階段尋求幫助,但必須遵循列表。 看來您要索要尚未完成第一個項目的最后一個項目。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.