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 :

tester si la connexion est déjà ok


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 382
    Points : 161
    Points
    161
    Par défaut tester si la connexion est déjà ok
    Bonjour,

    Sur un site j'ai un script qui initialise la connexion aux bases de données sur chaque page du site (ça ne me paraît pas très malin) car les internautes peuvent
    parvenir aux pages sans passer par la page index.

    1) avec pdo comment je peux vérifier que la connexion est déjà active ? (j'ai pensé à une session mais j'aurais une session par visiteur) or je souhaiterais que la connexion se fasse une seule fois pour l'ensemble des visiteurs.

    2) je pense mettre les "prépare" dans le même script de connexion aux bases. Ma question :
    Es ce que je peux faire un prépare "global" par exemple pour l'INSERT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insert= $connection->prepare('INSERT INTO truc VALUES("lig","date","visite","page","x","x","x","x")';
    Et faire un exec comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      $success = $insert->execute(array(
        'lig=>$lig_robot,
        'date'=>date("Y-m-d"),
        'visite'=>$_SESSION['ip_visiteur']
    ));
    que vont devenir les champs "page","x" etc ?
    Idem pour l'UPDATE , REPLACE

    Merci et bonne journée
    75 ans quelques dents en moins, mais toujours envie d'apprendre

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - C'est le fonctionnement normal d'établir la connexion pour chaque script ; il n'y a rien de génant à cela.

    2- Je n'ai pas compris ce que tu voulais faire, ton exemple est mal écrit : dans une requête préparées, il y a des paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insert= $connection->prepare('INSERT INTO truc (lig, col_date, visite) VALUES(:lig, CURDATE(), :visite)';
    et on fournit une valeur par paramètre (tu remarqueras que la date peut aller directement dans la requête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      $success = $insert->execute(array(
        ':lig'=>$lig_robot,
        ':visite'=>$_SESSION['ip_visiteur']
    ));
    Il ne peut pas y avoir d'omission dans les valeurs fournies.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 382
    Points : 161
    Points
    161
    Par défaut
    Ok, merci j'ai compris pour "prepare" maintenant je voudrais savoir si il est possible d'afficher les erreurs dans une requête directe du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $gene->exec('INSERT INTO robot_3 (id,date,visite,page_robot,robot,lib,lib1,lib2) VALUES(NULL,"date","visite","page_robot","robot","x","x","x")');
    J'ai volontairement fait une erreur dans le nom de la table et je n'ai aucune erreur détectée
    Dans la connexion à la base j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      	$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",PDO::ATTR_ERRMODE =>  PDO::ERRMODE_WARNING );
    Merci de m'éclairer
    75 ans quelques dents en moins, mais toujours envie d'apprendre

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $gene>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/10/2011, 12h01
  2. Tester si la connexion à internet est établie
    Par xtaZy dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 17/04/2007, 15h23
  3. Tester si la connexion à une base est toujours active
    Par richard038 dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/02/2007, 10h00
  4. Tester si un champ est NULL
    Par titititi007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2003, 10h17
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54

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