Bonjour,

je voudrais mettre à jour une bdd de membres : si le membre est nouveau, faire un insert et sinon un update, donc je commence par compter le nombre de membres portant le nom et le prénom donnés. Mais mon code doit être faux car il devrait renvoyer 0 alors qu'il renvoit 4 (le nombre de champs de la table). Il est où mon problème ?

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	$connexion=connect();
	$sql="SELECT * from `patient` WHERE (nom=:nom AND prenom=:prenom)";
	$prep = $connexion->prepare($sql);
	//Associer des valeurs aux place holders
	$prep->bindValue(':nom', $_POST['nom'], PDO::PARAM_STR);
	$prep->bindValue(':prenom', $_POST['prenom'], PDO::PARAM_STR);	
	$prep->execute();
	$colcount = $prep->columnCount();
	echo "colcount=".$colcount."<br/>";
	if ($colcount==0)	
			$sql="INSERT INTO `patient` (nom,prenom,date_naissance) VALUES (:nom,:prenom,:champ_date)";
	else
			$sql="UPDATE `patient` SET nom=:nom,prenom=:prenom,date_naissance=:champ_date";
 
	$prep = $connexion->prepare($sql);
 
	//Associer des valeurs aux place holders
	$prep->bindValue(':nom', $_POST['nom'], PDO::PARAM_STR);
	$prep->bindValue(':prenom', $_POST['prenom'], PDO::PARAM_STR);
	$prep->bindValue(':champ_date', setFrenchDate($_POST['date_naissance']), PDO::PARAM_STR);
 
	//Compiler et exécuter la requête
	$prep->execute();