proble avec pdo pour inserzer dans une base de donnée

nouveau-php59
Invité n'ayant pas de compte PHPfrance

01 déc. 2011, 02:14

bonjour, j'ai un soucis avec mon code source pour inserer les donnés dans ma base de donnés , quand j 'envois la requete la reponse est :

Code : Tout sélectionner

Fatal error: Call to a member function prepare() on a non-object in c/...wamp on line 17
alors que sur ma ligne 17 se trouve ma reqete bien écrite je pense ! voici mon code source :
aidez moi svp et merci d'avance
<?php
try
{
    // connection a la base
	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
   
// definir les variables
$nom = $_POST['nom'];
$possesseur = $_POST['possesseur'];
$console = $_POST['console'];
$prix = $_POST['prix'];
$nbre_joueurs_max = $_POST['nbre_joueurs_max'];
$commentaires = $_POST['commentaires'];
$bdd = 'mes_contacts';

   // insertion dans la base
$req = $bdd->prepare('INSERT INTO jeux_video(nom, possesseur, console, prix, nbre_joueurs_max, commentaires) VALUES(:nom, :possesseur, :console, :prix, :nbre_joueurs_max, :commentaires)');
$req->execute(array(
$nom = $_POST['nom'],
$posseeeur = $_POST['possesseur'],
$console = $_POST['console'],
$prix = $_POST['prix'],
$nbre_joueurs_max = $_POST['nbre_joueurs_max'],
$commentaires = $_POST['commentaires']
));
	

echo 'Le jeu a bien été ajouté !';

}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>

ViPHP
ViPHP | 2577 Messages

01 déc. 2011, 09:25

Ces 2 ligne pose problème :
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
...
$bdd = 'mes_contacts';

Le seconde détruit l'objet

Invité
Invité n'ayant pas de compte PHPfrance

01 déc. 2011, 13:53

voila j'ai enlevé la 2 émé $bdd mais un autre soucie ça repond : Erreur : SQLSTATE[HY093]: Invalid parameter number: parameter was not defined !!! svp une aide !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 déc. 2011, 14:05

salut,

je te conseil de revoir l'utilisation de PDO.

De plus l'utilisation de requête préparée n'est pas forcément utile dans ton cas. Une regarde la méthode query() et la méthode quote de la classe PDO.
http://www.php.net/manual/fr/class.pdo.php

@+
Il en faut peu pour être heureux ......

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

01 déc. 2011, 15:08

Modération :
Afin d'augmenter la lisibilité de tes messages, merci de penser à utiliser les balises [php], [code] ou [html] (en fonction du langage utilisé
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

nouveau-php59
Invité n'ayant pas de compte PHPfrance

03 déc. 2011, 05:01

c'est bon ça a marché !
j"ai juste remplace la requette prepare" par "exec" et le les valeurs ":noms", ... par "$nom", .....et ça a marché !
merci bcp de votre aide