Je n'arrive pas à inserrer les données dans la bd

Fermé
Signaler
Messages postés
67
Date d'inscription
samedi 19 janvier 2013
Statut
Membre
Dernière intervention
28 septembre 2018
-
Messages postés
216
Date d'inscription
lundi 2 décembre 2013
Statut
Membre
Dernière intervention
10 octobre 2016
-
bonjour,

je suis entrain de m'exercer avec PDO et j'ai un problème car je n'arrive pas à inserrer les données dans la bd j'ai déclaré une variable global dans la bd pour pour pouvoir se connecter mais toujours rien
quelque peut dire m'aider
je vous remercie en avance
plus bas mon fichier de connexion a la bd
et un fichier qui englobe tout le code

bdd.php
<?php

try{
$connect=new PDO('mysql:host=localhost;dbname=test','root','');
}catch(Exception $e){
die('Erreur:'.$e->getMessage());
}

?>





login.php

<html>
<body>
<form method="post" action="">
<input type="text" name="titre"/>
<input type="text" name="auteur"/>
<input type="text" name="contenu"/>
<input type="submit" name="submit" value="connexion"/>
</form>
</body>
</html>

<?php
include('bdd.php');
$connect=new PDO('mysql:host=localhost;dbname=test','root','');
if(isset($_POST['submit'])){
$titre=htmlentities(trim($_POST['titre']));
$auteur=htmlentities(trim($_POST['auteur']));
$contenu=htmlentities(trim($_POST['contenu']));

if(empty($_POST['titre'])){
echo "entrez le titre";
}
if(empty($_POST['auteur'])){
echo "entrez auteur";
}
if(empty($_POST['contenu'])){
echo "entrez le contenu";
}
else{


function connexion($titre,$auteur,$contenu){
//on prepare la reque puis on exécute
global $connect;
$query="INSERT INTO news(titre,auteur,contenu)
VALUES(:titre,:auteur,:contenu)";
$res=$connect->prepare($query);
$verification=$res->execute(array(":titre" =>$titre,":auteur" =>$auteur,":contenu" =>$contenu));
//fonction qui verifie si le pseudo existe deja
if($verification){
echo "data insere";
}else{
echo "data non inserre";
}

}
}


}


?>

2 réponses

Messages postés
34199
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2021
3 851
Bonjour,

Pleins d'erreurs dans ton code......

Par exemple... : Tu as créé un fichier bdd.php .... pourquoi ne l'utilises tu pas dans tes codes au lieu de recopier le code de connexion un peu partout dans ton code ??
Tu as créés une fonction ... mais tu ne l'appelles pas !

Bref :

Voici ton code remanié :
<?php 
//bdd.php 
try{ 
  $connect=new PDO('mysql:host=localhost;dbname=test','root',''); 
}catch(Exception $e){ 
  die('Erreur:'.$e->getMessage()); 
} 
?> 




nb : On place le PHP AVANT le html en général !
<?php
//login.php 

//connexion à la BDD
require_once 'bdd.php';

//------------------------------------------//
// FONCTIONS
//------------------------------------------//
 function createLigne($titre,$auteur,$contenu){ 
   //on prepare la reque puis et les variables
    global $connect; 
    $sql="INSERT INTO news(titre,auteur,contenu) 
                VALUES(:titre,:auteur,:contenu)"; 
					
	$a_datas = array(":titre" =>$titre,":auteur" =>$auteur,":contenu" =>$contenu);	
    
	//Exécution de la requete :
	try{	
      $res=$connect->prepare($sql); 
      $resultat=$res->execute($a_datas); 
	}catch(Exception $e){
	  echo "<br>Erreur : ".$e->getMessage();
	  $resultat = false;
	}
   return $resultat;
 } 
 
 //-------------------------------------------//
 // Traitemetnt du submit
 //-------------------------------------------//
 
 //récupération "propre" des variables
 $titre   = !empty($_POST['titre']) ? htmlentities(trim($_POST['titre'])) : null; 
 $auteur  = !empty($_POST['auteur']) ? htmlentities(trim($_POST['auteur'])) : null; 
 $contenu = !empty($_POST['contenu']) ? htmlentities(trim($_POST['contenu'])) :null; 
 

if(isset($_POST['submit'])){ 
  $msg = array();
 
  //si tous les champs sont remplis :
  if($titre && $auteur && $contenu){
    //appel de la fonction :
    $insertion = createLigne($titre,$auteur,$contenu);
	if(!$insertion){
	  echo "Erreur lors de l'insertion dans la BDD !";
	}
  }else{
	//sinon on vérifie chaque champ :
	if(!$titre){ $msg[] = 'entrez le titre';}
    if(!$auteur){ $msg[] = 'entrez un auteur';}
	if(!$contenu){ $msg[] = 'entrez le contenu';}
  } 
} 

?>
<html> 
 <body> 
	<div id="zone_formulaire">
		<form method="post" action=""> 
			<input type="text" name="titre"/> 
			<input type="text" name="auteur"/> 
			<input type="text" name="contenu"/> 
			<input type="submit" name="submit" value="connexion"/> 
		</form> 
	</div>
	<div id="zone_message">
	<?php
	  //si il y a des messages à afficher :
	  if(!empty($msg)){
		foreach($msg as $M){
		  echo "<br>".$M;
		}
	  }
	?>
	</div>
 </body> 
</html> 




PS: Merci d'utiliser les balises de code lorsque tu postes du code sur le forum. Merci de lire ceci : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Messages postés
216
Date d'inscription
lundi 2 décembre 2013
Statut
Membre
Dernière intervention
10 octobre 2016
21
Bonjour,

si cela peut t'aider j'ai rédiger un mini manuel pour PDO sur mon blog :

http://ww12.xrecasens.info

Cdlt.