第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Foreach 循環(huán)僅將數(shù)組中的最后一個值添加到表

Foreach 循環(huán)僅將數(shù)組中的最后一個值添加到表

PHP
慕妹3146593 2022-09-17 21:38:33
原諒我對PHP和MYSQL比較陌生,我相信這可能是一個很容易回答的問題(或者也許不是,我不確定)。這是我的復(fù)選框的HTML形式<form method="post" action="process.php"><input type="checkbox" name="athlete[]" value="1">athlete 1<br><input type="checkbox" name="athlete[]" value="2">athlete 2<br><input type="checkbox" name="athlete[]" value="3">athlete 3<br><br><input type="submit" value="Submit"></form>相當(dāng)簡單。然后我正在處理這個PHP.php:$checkboxes = isset($_POST['athlete']) ? $_POST['athlete'] : array();foreach($checkboxes as $value) {    $sql = "INSERT INTO draftPick(user_id, athlete_id)VALUES('77', '$value' )";}if(mysqli_query($conn,$sql)) {    echo 'Data added sucessfully';}else {    echo "Error: " . $sql . "<br>" . mysqli_error($conn);}mysqli_close($conn);我正在嘗試使用我的復(fù)選框創(chuàng)建一個foreach循環(huán),然后將每個復(fù)選框值插入MYSQL表中的新行中。但是,當(dāng)我運行此PHP時,它僅將最后選中的復(fù)選框值插入MYSQLtable中,而不會全部插入。如何循環(huán)它,以便它將所有選中的值插入到我的表中。感謝您的幫助!
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經(jīng)驗 獲得超7個贊

您也可以借此機會糾正 SQL 注入漏洞。


$stmt = $conn->prepare('INSERT INTO draftPick (user_id, athlete_id) VALUES ('77', ? )');

$stmt->bind_param('i', $value);

foreach($checkboxes as $value) {

    $stmt->execute();

}


查看完整回答
反對 回復(fù) 2022-09-17
?
開心每一天1111

TA貢獻1836條經(jīng)驗 獲得超13個贊

你所做的只是替換字符串,但你實際插入數(shù)據(jù)庫的執(zhí)行是在循環(huán)之后寫入的,這就是為什么它只插入最后一個復(fù)選框。$sql


試試這個:


$checkboxes = isset($_POST['athlete']) ? $_POST['athlete'] : array();

foreach($checkboxes as $value) {

    $sql = "INSERT INTO draftPick(user_id, athlete_id)VALUES('77', '$value' )";


    if(mysqli_query($conn,$sql)) {

        echo 'Data added sucessfully';

    } else {

        echo "Error: " . $sql . "<br>" . mysqli_error($conn);

    }


}


mysqli_close($conn);

另外,請注意,您插入(循環(huán))的方式非常慢,因為它正在執(zhí)行相當(dāng)多的查詢。應(yīng)改用批量插入。


警告:正如達爾曼在評論中提到的


您對 SQL 注入持開放態(tài)度,應(yīng)使用參數(shù)化的預(yù)準(zhǔn)備語句,而不是手動構(gòu)建查詢。它們由美通或麥?zhǔn)锨蹇铺峁S肋h不要相信任何類型的輸入!即使您的查詢僅由受信任的用戶執(zhí)行,您仍然面臨損壞數(shù)據(jù)的風(fēng)險。逃避是不夠的!


查看完整回答
反對 回復(fù) 2022-09-17
?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

當(dāng)您設(shè)置 :


 $sql = "INSERT INTO draftPick(user_id, athlete_id)VALUES('77', '$value' )";

它只是一個字符串 bieng 設(shè)置為$sql可瓦拉,其中


mysqli_query($conn,$sql)

是執(zhí)行 SQL 查詢以將數(shù)據(jù)插入到表中,因此移動


foreach($checkboxes as $value) {

  $sql = "INSERT INTO draftPick(user_id, athlete_id)VALUES('77', '$value' )";

  mysqli_query($conn,$sql);

}


查看完整回答
反對 回復(fù) 2022-09-17
  • 3 回答
  • 0 關(guān)注
  • 198 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號