Besoin d'aide ?

Utilisation PDO dans les controllers

  • Avatar de Zut_php
    Membre depuis :
    02/03/2017
    Messages :
    2

    Bonjour,

    Nouveau sur laravel ... je suis actuellement en train de patiner sur l'utilisation d'une formule toute simple en PDO dans un fichier des controllers celle ci :

    $bdd = new PDO('mysql:host=localhost;dbname=zut', 'root', '');
    $reponse=$bdd->query("SELECT COUNT(*) FROM user_int WHERE USR_LOGIN='".addslashes($login)."' AND USR_PWD='".addslashes($password)."'");
    $resultbdd = $reponse->fetch();
    $reponse->closeCursor();

    J'ai opté pour la PDO pour des soucis de simplicité (déja que je m'aventure sur un nouveau frameworks ... une brique à la fois ! ) et aussi car j'utilise plusieurs base de données sur mysql et également une sur sqlserver.

    Mes appels dans les vue fonctionnent ... mais pas dans les controllers ....

    Avez vous une idée

    Merci d'avance

  • Avatar de Zut_php
    Membre depuis :
    02/03/2017
    Messages :
    2

    Pour pouvoir utiliser la PDO dans ses controller, il faut faire l'import de ceci dans l'entête ...

    use PDO;

    Beaucoup se demanderont pourquoi continuer à utiliser pdo ... alors qu'il y a eloquent ...

    Car PDO sera toujours plus rapide en traitement qu'un ORM (vous éliminez un intermédiaire .... )
    Donc moins joli mais plus rapide !!!

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    1314

    Bonjour,

    On peut aussi établir ainsi la référence :

    $bdd = new \PDO('mysql:host=localhost;dbname=zut', 'root', '');

    C'est sûr qu'il y a moins d'intermédiaires (dans la même idée on peut aussi prévoir des procédures stockées), mais je serais intéressé de lire des tests comparatifs pour savoir si le gain de performances est si intéressant que ça...

  • Avatar de MaitrePylos
    Membre depuis :
    27/05/2013
    Messages :
    62

    Bonjour,
    En même temps il existe une méthode de connecion à la db en PDO, ce qui évite d'écrire le DSN partout, mais permet d'utiliser le PDO quand c'est nécessaire.

    $bdd = DB::getPdo();

    $reponse=$bdd->query("SELECT COUNT(*) FROM user_int WHERE USR_LOGIN='".addslashes($login)."' AND USR_PWD='".addslashes($password)."'");

    $resultbdd = $reponse->fetch();

    $reponse->closeCursor();

Vous ne pouvez pas répondre à ce sujet.