Advertisement
soyuka

PHP PDO Exemple

Dec 21st, 2012
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.99 KB | None | 0 0
  1. <?php
  2. Notices de merde :D
  3. @ini_set('error_reporting', E_ALL & ~ E_NOTICE);
  4.  
  5. //MYSQL
  6. define('DB_HOST', 'localhost');
  7. define('DB_DATABASE', 'xxx');
  8. define('DB_USERNAME', 'user');
  9. define('DB_PASSWORD', 'password');
  10.  
  11. //Un exemple simple pour utiliser pdo
  12. //http://php.net/manual/fr/pdo.connections.php
  13. class DB
  14. {
  15.     private static $instance = NULL;
  16.  
  17.     public static function getInstance() {
  18.  
  19.         if (!self::$instance) {
  20.             self::$instance = new PDO("mysql:host=".DB_HOST.";dbname=".DB_DATABASE, DB_USERNAME, DB_PASSWORD);
  21.             self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  22.         }
  23.         return self::$instance;
  24.     }
  25.  
  26.     private function __clone() {
  27.         /* interdiction de cloner l'instance */
  28.     }
  29.  
  30. }
  31.  
  32. //Je vérifierai d'abord les valeurs :
  33. //Par ex un pseudo est une chaine (des tableaux peuvent être passés dans les requêtes !), sa taille est < à 12 caractères et elle contient des lettres, chiffres aucun ou deux - ou _
  34. if( is_string($_POST['pseudo']) && strlen($_POST['pseudo']) < 12 && preg_match('/^[A-Za-z0-9]+[-_]{0,2}$/', $_POST['pseudo'] )
  35.     $pseudo = $_POST['pseudo'];
  36. else
  37. {
  38.     header("HTTP/1.0 400 Bad Request");
  39.     exit(); //tjrs sortir du script après l'erreur !
  40. }
  41.  
  42. //Puis l'email :
  43. if( is_string($_POST['email']) && preg_match("/^[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]{2,4}$/", $_POST['email']) )
  44.     $email = $_POST['email'];
  45. else
  46. {
  47.     header("HTTP/1.0 400 Bad Request");
  48.     exit();
  49. }
  50.  
  51. //On instancie la DB
  52. $DB = DB::getInstance();
  53.  
  54. //Puis on insère :
  55. $req = $DB->prepare('INSERT INTO trololol_table (pseudo, mail) VALUES (:pseudo, :email)');
  56. $req->execute(
  57.               array(
  58.                   'pseudo'=>$pseudo,
  59.                   'password'=>$email
  60.                   )
  61.               );
  62.  
  63. //Done, on peut récupérer l'id par ex :
  64. $lastId = $DB->lastInsertId();
  65.  
  66. //Pour la sélection de même que plus haut avec la requete puis
  67. //$data = $req->fetch(PDO::FETCH_ASSOC);
  68. //$req->closeCursor();
  69. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement