salut j'ai un problème avec l'insertion data
mon pdo
query
insérer seulement un row
.pourquoi ma requête pdo insère seulement la dernière rangée
pourquoi la dernière ligne est insérée 2 fois, i, e friday pm
ici est ce que je l'ai fait
s'il vous plaît voir mon construit query
ici 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();
}
mon point de départ appel ci-dessus 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);
Question Pourquoi le dernier rang est inséré deux fois?
s'il vous plaît aidez-moi merci d'avance !!!!
Préparer en dehors de la boucle, lier et exécuter dans la boucle. – Script47
Où sont définis vos espaces réservés pour les valeurs? – Script47
J'ai écrit tellement 'code' pour' exécuter la requête à la fois' mais avec la réponse ci-dessous chaque fois que je dois exécuter. S'il vous plaît voir sa démo ici http://phpio.net/s/5470 – EaB