准备语句数组爆炸

问题描述

我是初学者,我正在尝试使用准备好的语句来编辑页面/表单,但我不知道如何使用准备好的语句爆炸。我想在每次输入中获取数组数据中的数据。 为此<input type="text" name="adimpdate[]" id="adimpdate[]" value="<?PHP echo $row568->adimpdate; ?>" placeholder="enter">

  <?PHP
    
    $id= $_GET['id'];
    $sql011 = $MysqLi->prepare("SELECT * FROM detail WHERE id = ? ");
    $sql011->bind_param("i",$id);
    $sql011->execute();
    $res658=$sql011->get_result();
    ?>
<?PHP
 while($row658=$res658->fetch_object()){
?>

    <table>
    <tr >
    <td id="imp" class="wrap">
        <ul class="my_Box">
            <input type="text" name="adimpdate[]" id="adimpdate[]" value="<?PHP echo $row568->adimpdate; ?>"  placeholder="enter" required>
            <button id="impbtn" type="button" name="add" onclick="add_more()">Add</button>
        </ul>
        <input type="hidden" id="Box_count" value="1">
    </table>
    <input id="uplbtn" type="submit"  name="upload_all" value="UPLOAD">
    </form>
    </div>
    </div>
    </div>
    

我使用 Jquery 添加更多输入并使用 implode 将数据保存在数据库

 <script>
    /**(1)*****Important Dates******** */

function add_more(){
    var Box_count=jQuery("#Box_count").val();
    Box_count++;
    jQuery("#Box_count").val(Box_count);
    jQuery(".wrap").append('<ul class="my_Box" id="Box_loop_'+Box_count+'"><input type="text" name="adimpdate[]" id="adimpdate[]"  placeholder="example- Application Begin : 22/01/2021"><button class="remove_field" type="button" onclick=remove_more("'+Box_count+'")>Remove</button></ul>');
}
function remove_more(Box_count){
    jQuery("#Box_loop_"+Box_count).remove();
    var Box_count=jQuery("#Box_count").val();
    Box_count--;
    jQuery("#Box_count").val(Box_count);
}
</script>  
<?PHP
}
?>

解决方法

准备好的语句占位符的工作方式有点像 php 变量插值,因此它不会替换任何 SQL。 您仍然必须使用 SQL IN() 函数来按多个值查询或定义一个准备好的语句来按 id 查找并为数组中的每个条目执行它。

  $ids = [1,2,3];
  $sql011 = $mysqli->prepare("SELECT * FROM detail WHERE id = ? ");
  foreach ($ids as $id) {
    $sql011->bind_param("i",$id);
    $sql011->execute();
    $res658=$sql011->get_result();
  }