簡體   English   中英

為什么我的 pdo 查詢只插入最后一行

[英]why my pdo query is inserting only the last row

嗨,我在插入data遇到問題,我的pdo query僅插入row

為什么最后一行插入了 2 次,即friday pm

這是我所做的

請在此處查看我構建的query http://phpio.net/s/54jc

<?php   

function returnValuesNoOfTimes($count,$fields = array()){

    $str = str_repeat("(:{$fields['user_id']},:{$fields['day']},:{$fields['am_pm']}),",$count); 

   return rtrim($str,", ");        
}


function queryBuilderLocallyDone($data = array(),$fields = array(),$user_id,$object_count){


 /*Inserting user values*/  

$valuesTimes = returnValuesNoOfTimes($object_count,$fields);


  $db = getDB();   


  $sql1="INSERT INTO availability({$fields['user_id']},{$fields['day']},{$fields['am_pm']}) VALUES {$valuesTimes}";  



  $stmt1 = $db->prepare($sql1);               



    foreach($data as $avb){         

      $stmt1->bindParam("user_id", $user_id,PDO::PARAM_STR);
      $stmt1->bindParam("day",$avb['day'],PDO::PARAM_STR);  
      $stmt1->bindParam("am_pm",$avb['time'],PDO::PARAM_STR);                                           
    }   



   $stmt1->execute();        



     // $stmt1->execute();                 


}   

我調用上述functions起點

   $data = [
      0 => ['day'=> 'monday','time'=>'am'],
      1 => ['day'=> 'friday','time'=>'pm']
    ];

    $user_id = 2;


    $total = count($data);

     $fields = ['id'=>'','user_id'=>'user_id','day'=>'day','am_pm'=>'am_pm'];   
     queryBuilderLocallyDone($data,$fields,$user_id,$total);

問題:為什么最后一行插入了 2 次?

請幫助我在此先感謝!!!!

請插入 $stmt1->execute(); 在 foreach

foreach($data as $avb){         

  $stmt1->bindParam("user_id", $user_id,PDO::PARAM_STR);
  $stmt1->bindParam("day",$avb['day'],PDO::PARAM_STR);  
  $stmt1->bindParam("am_pm",$avb['time'],PDO::PARAM_STR);                                           
  $stmt1->execute();        
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM