IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requêtes qui ne fonctionnent pas


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 43
    Points : 36
    Points
    36
    Par défaut Requêtes qui ne fonctionnent pas
    Bonjour et bonne année 2016,



    J'ai créé 2 fonctions : une qui ajoute un enregistrement dans la table blog_de_peche, l'autre qui modifie un article existant.

    Lorsque j'utilise ces fonctions, les enregistrements ne sont pas enregistrés ni modifiés.

    Le code d'erreur est le suivant : PDO::errorInfo(): Array ( [0] => HY093 [1] => [2] => ) HY093,,

    J'ai beau relire mon code, je ne trouve pas la cause de cette erreur.

    Pouvez-vous m'aider ?

    Merci beaucoup !



    Voici mon code :

    1 - les fonctions ajoute_article et enregistre_article :



    Code : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    function ajoute_article($url_, $auteur_, $email_, $titre_, $description_, $mots_cles_, $article_) {
    	$pdo = PDO2::getInstance();
    	$sql='INSERT INTO blog_de_peche ( url, auteur, email, titre, description, mots_cles, article) VALUES (:url, :auteur, :email, :titre, :description, :mots_cles, :article)';
    	$requete = $pdo->prepare($sql);
    	$requete->bindValue(':url', $url_, PDO::PARAM_STR);
    	$requete->bindValue(':auteur', $auteur_, PDO::PARAM_STR);
    	$requete->bindValue(':email', $email_, PDO::PARAM_STR);	
    	$requete->bindValue(':auteur', $titre_, PDO::PARAM_STR);	
    	$requete->bindValue(':description', $description_, PDO::PARAM_STR);	
    	$requete->bindValue(':mots_cles', $mots_cles_, PDO::PARAM_STR);	
    	$requete->bindValue(':article', $article_, PDO::PARAM_STR);	
    	if ($requete->execute()) 
    	{
    		echo '<div class="wrapper row2 clear"><div id="container" class="alert-msg success">Article enregistr&eacute; avec succ&egrave;s</div></div>';
    		return $pdo->lastInsertId();
    	}
    	else
    	{
    		echo '<div class="wrapper row2 clear"><div id="container" class="alert-msg error">Attention : impossible d\'enregistrer l\'article.</br></br>';
    		echo '$SQL = '.$sql.'</br></br>';
    		echo "\nPDO::errorInfo():\n";
       print_r($requete->errorInfo());
    		echo implode(",",$requete->errorInfo());
    		echo '</div></div>';
    		return 0;
    	}
    	$requete->closeCursor();}
     
    function enregistre_article($url_,$auteur_,$email_,$titre_,$description_,$mots_cles_,$article_,$id_article_) {
    	$pdo = PDO2::getInstance();
    	$sql='UPDATE blog_de_peche SET url=:url, auteur=:auteur, email=:email, titre=:titre, description=:description, mots_cles=:mots_cles, article=:article WHERE id_article=:id_article';
    	$requete = $pdo->prepare($sql);
     
    	$requete->bindValue(':url', $url_, PDO::PARAM_STR);
    	$requete->bindValue(':auteur', $auteur_, PDO::PARAM_STR);
    	$requete->bindValue(':email', $email_, PDO::PARAM_STR);	
    	$requete->bindValue(':auteur', $titre_, PDO::PARAM_STR);	
    	$requete->bindValue(':description', $description_, PDO::PARAM_STR);	
    	$requete->bindValue(':mots_cles', $mots_cles_, PDO::PARAM_STR);	
    	$requete->bindValue(':article', $article_, PDO::PARAM_STR);
    	$requete->bindValue(':id_article', $id_article_, PDO::PARAM_INT);
    	if ($requete->execute()) 
    	{
    		echo '<div class="wrapper row2 clear"><div id="container" class="alert-msg success">Article modifi&eacute; avec succ&egrave;s.</div></div>';
    		return true;
    	} 
    	else
    	{
    		echo '<div class="wrapper row2 clear"><div id="container" class="alert-msg error">Attention : impossible de modifier l\'article.</br></br>';
    		echo '$SQL = '.$sql.'</br></br>';
    		echo "\nPDO::errorInfo():\n";
       print_r($requete->errorInfo());
       echo implode(",",$requete->errorInfo());
    		echo '</div></div>';
    		return false;
    	}
    }

    2 - le code qui appelle la fonction ajoute_article :


    Code : 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
    24
    25
    26
    <?php 
    		if (isset ($_POST['Envoi']) AND !empty($_POST['Envoi'])) 
    		{
    			include_once('libs/fonctions-sql-blog.php');
     
    			if(isset($_POST['id_article']) AND !empty($_POST['id_article'])){$id_article=$_POST['id_article'];} else {$id_article=0;}
    			if(isset($_POST['auteur']) AND !empty($_POST['auteur'])){$auteur=$_POST['auteur'];}
    			if(isset($_POST['email']) AND !empty($_POST['email'])){$email=$_POST['email'];}	
    			if(isset($_POST['titre']) AND !empty($_POST['titre'])){$titre=$_POST['titre'];}
    			if(isset($_POST['description']) AND !empty($_POST['description'])){$description=$_POST['description'];}	 
    			if(isset($_POST['mots_cles']) AND !empty($_POST['mots_cles'])){$mots_cles=$_POST['mots_cles'];}	 
    			if(isset($_POST['article']) AND !empty($_POST['article'])){$article= $_POST['article'];}	
     
     
     
    			if (isset($id_article))
    			{
    				// Modification (UPDATE) de l'article si $id_article>0 ou Ajout (INSERT) de l'article si $id_article=0
    					if ($id_article>0) {$enregistrement_ok=enregistre_article($url,$auteur,$email,$titre,$description,$mots_cles,$article,$id_article);} else {$id_article=ajoute_article($url,$auteur,$email,$titre,$description,$mots_cles,$article);}
    			}
    			else 
    			{
    				$id_article=ajoute_article($url, $auteur, $email, $titre, $description, $mots_cles, $article);
    			}	
    		}
    ?>

    3 - le code qui appelle la fonction enregistre_article :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    if (isset ($_POST['Envoi']) AND !empty($_POST['Envoi'])) 
    {	
    if(isset($_POST['id_article']) AND !empty($_POST['id_article'])){$id_article=$_POST['id_article'];}	
    if(isset($_POST['url']) AND !empty($_POST['url'])){$url=$_POST['url'];}	
    if(isset($_POST['auteur']) AND !empty($_POST['auteur'])){$auteur=$_POST['auteur'];}	
    if(isset($_POST['email']) AND !empty($_POST['email'])){$email=$_POST['email'];}
    if(isset($_POST['titre']) AND !empty($_POST['titre'])){$titre=$_POST['titre'];}	
    if(isset($_POST['description']) AND !empty($_POST['description'])){$description=$_POST['description'];}	
    if(isset($_POST['mots_cles']) AND !empty($_POST['mots_cles'])){$mots_cles=$_POST['mots_cles'];}	
    if(isset($_POST['article']) AND !empty($_POST['article'])){$article= $_POST['article'];}	
    $enregistrement_ok=enregistre_article($url,$auteur,$email,$titre,$description,$mots_cles,$article,$id_article);
    }

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    dans tes fonctions ajoute_article et enregistre_article, tu as codé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete->bindValue(':auteur', $titre_, PDO::PARAM_STR);
    $requete->bindValue(':auteur', $auteur_, PDO::PARAM_STR);
    Le problème est là...
    Toujours faire gaffe au copier-coller

    en PHP empty englobe déjà isset, utiliser les deux est redondant.
    don ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['id_article']) AND !empty($_POST['id_article'])){$id_article=$_POST['id_article'];}
    peut être avantageusement remplacé par cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_article = empty($_POST['id_article']) ? '' : $_POST['id_article'];

Discussions similaires

  1. [MySQL] Requête qui ne fonctionne pas
    Par lelandais1 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 28/03/2010, 15h15
  2. Réponses: 3
    Dernier message: 28/08/2009, 13h30
  3. Filtrage au niveau de la requête qui ne fonctionne pas comme prévu
    Par hartecel dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/06/2008, 14h06
  4. Requête qui ne fonctionne pas
    Par gregory.bts dans le forum JDBC
    Réponses: 1
    Dernier message: 10/06/2007, 01h11
  5. [SQL] requête qui ne fonctionne pas
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2007, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo