Bonjour,
conscient qu'il est grand temps de passer des fonctions mysql_xxx à PDO, je veux le faire, mais je tombe sur un souci : la connexion à la base ne marche plus !
Connexion avec mysql_xxx :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $entered_user = $_SERVER["PHP_AUTH_USER"]; $entered_pass = $_SERVER["PHP_AUTH_PW"]; if (isset($entered_user) && isset($entered_pass)) { $dbase="su_dev_eis"; mysql_connect("localhost",$entered_user,$entered_pass) or die ("Connexion impossible sur le serveur MySQL"); mysql_select_db($dbase) or die ("Sélection de la base SQL impossible"); ...
Connexion avec PDO :
définition de la classe :
Code php : 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
23
24
25
26
27 <?php error_reporting(E_ALL); ini_set('display_errors','1'); // MyPDO //la classe MyPdo hérite de la classe PDO (extends) class MyPdo extends PDO { static public $DB_NAME = "su_dev_eis"; static public $HOST = "localhost"; // le constructeur de MyPdo appelle le constructeur de PDO en lui passant ses paramètres function __construct() { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;//important sur les configs récentes $pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;//pour le mode objet $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";//pour l'utf-8 parent::__construct('mysql:host=' . MyPdo::$HOST . ';dbname=' . MyPdo::$DB_NAME, $_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"], $pdo_options); } } // fin MyPDO ?>
utilisation de la classe (donc connexion) :
et au lieu de passer dans le try, on passe dans le catch.
Code php : 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 <?php header('Content-type: text/html; charset=UTF-8'); //// connexion include 'MyPdo.php'; try{ $bdd = new MyPDO(); // exécuter un select puis afficher les lignes $sql='select * from `user` order by name'; $qid = $bdd->prepare($sql); $qid->execute(); while( $ligne=$qid->fetch(PDO::FETCH_OBJ) ) echo "name : $ligne->name firstname : $ligne->firstname <br/>"; $bdd=NULL; } catch(PDOException $e){ echo "argggggggggggggg".$e->getMessage(); } ?>
Pourquoi ?arggggggggggggggSQLSTATE[42S02]: Base table or view not found: 1146 Table 'su_dev_eis.user' doesn't exist
Partager