[英]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.