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 :

Erreur avec liaison mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2013
    Messages : 40
    Par défaut Erreur avec liaison mysql
    Bonjour,
    je sollicite votre aide car j'ai un fichier dans lequel il y a une connection a mysql et qui ensuite lance une requete.
    Ci dessous le code du fichier, appelons le toto.php.
    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
     
    include "include/mysql-env.php";
    try {	 
    	$dsn = "mysql:host=$dbhost;dbname=$db; dbuser=$dbuser, dbpassword =$dbpassword ";
    	$dbh = new PDO("mysql:host=127.0.0.1;dbname=$db", $dbuser, $dbpassword,  array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
     
    } catch (PDOException $e) {
     print "Error!: " . $e->getMessage() . "<br/>DSN:$dsn";
       die();
    }
     
    function getAddressId($fname, $lname,$email) {
    	global $dbh;		
    	$qry = "SELECT id FROM address WHERE 
    				fname = '$fname' AND 
    				lname = '$lname' AND 
    				email = '$email'";					
    	$sth = $dbh->prepare($qry);
    	$sth->execute();
    	$row = $sth->fetch();
    	return($row["id"]);
    }
    Le fichier est a la racine du site.
    Si j'appelle le fichier par monsite.com/toto.php ca marche.
    Etant donne que j'utilise wordpress, j'ai donc une page wordpress (disons test), qui via un plugin permettant d'inclure des fichiers php, inclus donc toto.php.
    Maintenant si j'appelle monsite.com/test alors j'ai cette erreur:
    PHP Fatal error: Uncaught Error: Call to a member function prepare() on null

    Ce que je comprends d'autant moins est que l'inclusion de fichiers php est utilisee ailleurs dans le meme site et cela marche!!
    Quelqu'un aurait il une idee?


    D'avance merci.
    Ps: desole pour les accents, j'ai un clavier anglais.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 597
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 597
    Par défaut
    Si vous utilisez WordPress, il y a déjà des fonction de gestion des données, vous n'avez pas besoin de faire une connexion à la base de données.
    Par exemple pour stocker des objets, vous pouvez utiliser les "custom post type", regardez là :
    https://codex.wordpress.org/Post_Typ...tom_Post_Types

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2013
    Messages : 40
    Par défaut
    Bonjour et merci de la reponse,
    mais je reprends un projet existant et je ne veux pas tout reconstruire, je suis a la recherche d'une reponse sur la base du projet tel qu'il est.

    Merci encore.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Quelques pistes qui me viennent à l'esprit...

    1)
    Etant donne que j'utilise wordpress, j'ai donc une page wordpress (disons test), qui via un plugin permettant d'inclure des fichiers php, inclus donc toto.php.
    En es-tu certain ?
    Place un echo 'je suis dans toto.php'; au début du fichier pour vérifier.

    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include "include/mysql-env.php";
    Là aussi, s'assurer que l'inclusion se fait bien avec la même méthode que ci-dessus.

    3)
    PHP Fatal error: Uncaught Error: Call to a member function prepare() on null
    Cela semble indiquer que $dbh n'est pas valorisée dans la fonction.
    Là aussi, il faut tester la variable pour s'en assurer.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2013
    Messages : 40
    Par défaut
    Bonjour et merci pour votre reponse,

    En es-tu certain ?
    Place un echo 'je suis dans toto.php'; au début du fichier pour vérifier.

    Là aussi, s'assurer que l'inclusion se fait bien avec la même méthode que ci-dessus.
    Oui avant de vous embeter, j'ai fait ce type de verification d'usage et tout est bon.

    Finalement je me suis debrouille autrement, j'appelle directement le fichier php sans passer par une page wordpress.

    Merci encore pour vos reponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur avec composant MySQL
    Par akaii dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/03/2010, 23h07
  2. Erreur Avec API MYSQL
    Par Atemi76 dans le forum C++Builder
    Réponses: 17
    Dernier message: 27/04/2009, 17h19
  3. Erreur requête avec liaison fichier HyperFile
    Par nicolasT29 dans le forum HyperFileSQL
    Réponses: 24
    Dernier message: 19/06/2006, 11h56
  4. [MySQL] erreur avec sous-requête
    Par Piou2fois dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/02/2006, 13h44
  5. Réponses: 2
    Dernier message: 16/01/2006, 11h38

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