Fatal error: call to member function prepare() on nul
Python997
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, Bonjour à tous je rencontre un problème suivant dans Mon code php. fatal error: call to member function prepare() on nul
J'essaye juste de récupérer les informations saisies par le user
J'essaye juste de récupérer les informations saisies par le user
<?php session_start(); require_once ('db/database.php'); /** *fonction de récupération des données * * @param string nom du client * @param string prenom du client * @param string date de naissance du client * @param string telephone du client * @param string numero de permis du client * @param string date de délivrance * @param string boite postal * @param string adresse du client * @param string marque de l'auto * @param string immatriculation de l'auto * @param string chassis * @param string date de la première mise en circulation * @param string poids du véhicule * @param string valeur neuve de l'auto * @param string valeur venale de l'auto * @param string nombre de passagers */ // déclaration de variable $NomErr=$PrenomErr=$DateNaisErr=$TelephoneErr=$NoPermisErr=$DateDelErr=$BPErr=$AdresErr=""; $Nom=$Prenom=$DateNais=$Telephone=$NoPermis=$DateDel=$BP=$Adres=""; $MarqueErr=$ImmatriculationErr=$ChassisErr=$datePrCirculationErr=$PoidsErr=$valeurNeuveErr=$valeurVenalErr=$nbrePassagersErr=""; $Marque=$Immatriculation=$Chassis=$datePrCirculation=$Poids=$valeurNeuve=$valeurVenal=$NbrePassagers=""; if($_SERVER["REQUEST_METHOD"] == "POST"){ function test_input($data){ $data=trim($data); $data=stripcslashes($data); $data=htmlspecialchars($data); return $data; } //reduction des chaînes $nom=$_POST['Nom_cl']; $prenom=$_POST['Prenom_cl']; $date=$_POST['DateNais_cl']; $telephone=$_POST['Telephone_cl']; $permis=$_POST['noPermis']; $datedel=$_POST['dateDelivrance']; $bp=$_POST['BoitePostal']; $adres=$_POST['adresse']; $marque=$_POST['marque']; $immat=$_POST['immatriculation']; $chassis=$_POST['Chassis']; $datepr=$_POST['datePrCirculation']; $poids=$_POST['Poids']; $valeurneuve=$_POST['valeurNeuve']; $valeurvenal=$_POST['valeurVenal']; $passagers=$_POST['nbrePassagers']; //fonction de récupération des informations du clients function recup_client(){ //on vérifie si tout les champs ont bien été rempli if(!empty($nom)){ $NomErr="veillez saisir le nom du client..."; }else{ $Nom=test_input(htmlspecialchars(trim($nom))); if(!preg_match("/^[a-zA-Z]*$/", $Nom)){ $NomErr="le nom doit contenir rien que des lettres et des espace"; } } if(!empty($prenom)){ $PrenomErr="veillez saisir le prenom du client..."; }else{ $Prenom=test_input(htmlspecialchars(trim($prenom))); } if(!empty($date)){ $DateNaisErr="veillez saisir la date de naissance du client..."; }else{ $DateNais=test_input(htmlspecialchars(trim($date))); } if(!empty($telephone)){ $TelephoneErr="veillez saisir le numero de téléphone du client..."; }else{ $Telephone=test_input(htmlspecialchars(trim($telephone))); } if(!empty($permis)){ $NoPermisErr="veillez saisir le numéro de permis du client..."; }else{ $NoPermis=test_input(htmlspecialchars(trim($permis))); } if(!empty($datedel)){ $DateDelErr="veillez saisir la date de délivrance..."; }else{ $DateDel=test_input(htmlspecialchars(trim($datedel))); } if(!empty($bp)){ $BPErr="veillez saisir la boite postal du client..."; }else{ $BP=test_input(htmlspecialchars(trim($bp))); } if(!empty($adres)){ $AdresErr="veillez saisir l'adresse du client..."; }else{ $Adres=test_input(htmlspecialchars(trim($adres))); } //variable contenant les différentes requêtes $select='SELECT ID_Cl FROM clients WHERE Nom_Cl=? ORDER BY Nom_Cl ASC ID_Cl ASC'; $insert='INSERT INTO clients VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'; $donne=array(); $sel=$db->prepare($select); $sel->execute(array($nom)); $ins=$db->prepare($insert); $ins->execute( array('',$Nom,$Prenom,$DateNais,'',$Telephone,'','','',$NoPermis,$DateDel,$BP,$Adres,'','','')); $nbr=$ins->rowcount(); unset($db); if(count($donne)>0){ echo '<pres>'; print_r($donne); echo '<pres>'; } } return recup_client(); //récupération des informations de l'automobile function recup_auto(){ if(!empty($marque)){ $MarqueErr="veillez saisir la marque de l'automobile..."; }else{ $Marque=test_input(htmlspecialchars(trim($marque))); } if(!empty($immat)){ $ImmatriculationErr="veillez saisir l'immatriculation de l'automobile..."; }else{ $Immatriculation=test_input(htmlspecialchars(trim($immat))); } if(!empty($chassis)){ $ChassisErr="veillez saisir le numéro du chassis de l'automobile..."; }else{ $Chassis=test_input(htmlspecialchars(trim($chassis))); } if(!empty($datepr)){ $datePrCirculationErr="veillez saisir la date de la première mise en circulation..."; }else{ $datePrCirculation=test_input(htmlspecialchars(trim($datepr))); } if(!empty($poids)){ $PoidsErr="veillez saisir le poids de l'automobile..."; }else{ $Poids=test_input(htmlspecialchars(trim($poids))); } if(!empty($valeurneuve)){ $valeurNeuveErr="veillez saisir la valeur neuve de l'automobile..."; }else{ $valeurNeuve=test_input(htmlspecialchars(trim($valeurneuve))); } if(!empty($valeurvenal)){ $valeurVenalErr="veillez saisir la valeur venal de l'automobile..."; }else{ $valeurVenal=test_input(htmlspecialchars(trim($valeurvenal))); } if(!empty($passagers)){ $nbrePassagersErr="veillez saisir le nombre passagers de l'automobile..."; }else{ $NbrePassagers=test_input(htmlspecialchars(trim($passagers))); } //requête $select1='SELECT ID_Auto FROM automobile'; $insert1='INSERT INTO automobile VALUES(?,?,?,?,?,?,?,?,?,?)'; $req=$db->prepare($select1); $req->execute(); $req1=$db->prepare($insert1); $req1->execute(array('',$Marque,$Immatriculation,$Chassis,$Poids,'',$valeurNeuve,$valeurVenal,$NbrePassagers)); $donne=array(); $nbr=$req1->rowcount(); unset($db); if(count($donne)>0){ echo '<pres>'; print_r($donne); echo '<pres>'; } } } ?>
Configuration: Android / Chrome 76.0.3809.89
A voir également:
- Fatal error: call to member function prepare() on nul
- Fan error lenovo - Forum Refroidissement
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Whea error occt - Forum Processeur
- Error 1962 ✓ - Forum PC fixe
1 réponse
Bonjour,
$db contient-t-il une instance de PDO ? Que fait ton fichier database.php ?
Attention, si l'instance de PDO a été créée dans une fonction, il faut prendre en compte la portée des variables.
https://www.php.net/manual/fr/language.variables.scope.php
$db contient-t-il une instance de PDO ? Que fait ton fichier database.php ?
Attention, si l'instance de PDO a été créée dans une fonction, il faut prendre en compte la portée des variables.
https://www.php.net/manual/fr/language.variables.scope.php
Tu peux le vérifier toi-même en faisant un petit var_dump($db); ça devrait te dire que c'est vide :).
moi je ferais , en adaptant, si nécessaire, database.php.
ton code est illisible, car non indenté.
que retourne la fonction recup_client()?
J'essaye cette methode je revient Vers vous