connection string instanciation objet PDO
Bonjour,
Voici 4 syntaxes de connexion, la syntaxe 3 plante. Ma question est de savoir pourquoi parfois on met dans le driver mysql:localhost, parfois mysql:host=localhost et si on travaille avec des constantes, seule la syntaxe mysql:SERVEUR fonctionne. Pourquoi aussi les deux syntaxes : dbname ou db name sont bonnes ?
Quelle est la meilleure solution ?
Merci pour ces éclaircissements
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<?php
define('SERVEUR', 'localhost');
define('BD', 'test');
define('LOGIN', 'toto');
define('PWD', 'toto');
echo "Syntaxe 1 ";
try {
$connect_str = "mysql:localhost;db name=test";
$dbmysql = new PDO($connect_str, LOGIN, PWD);
$dbmysql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connecté à Mysql";
} catch (PDOException $pdoEx) {
echo "<p>" . $pdoEx . "</p>";
}
echo "<p>Syntaxe 2 ";
try {
$connect_str = "mysql:host=localhost;dbname=test";
$dbmysql = new PDO($connect_str, LOGIN, PWD);
$dbmysql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connecté à Mysql </p>";
} catch (PDOException $pdoEx) {
echo "<p>" . $pdoEx . "</p>";
}
echo "<p>Syntaxe 3 ";
try {
$connect_str = "mysql:host=SERVEUR;dbname=BD";
$dbmysql = new PDO($connect_str, LOGIN, PWD);
$dbmysql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connecté à Mysql</p>";
} catch (PDOException $pdoEx) {
echo "<p>" . $pdoEx . "</p>";
}
echo "<p>Syntaxe 4 ";
try {
$connect_str = "mysql:SERVEUR;dbname=BD";
$dbmysql = new PDO($connect_str, LOGIN, PWD);
$dbmysql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "connecté à Mysql</p>";
} catch (PDOException $pdoEx) {
echo "<p>" . $pdoEx . "</p>";
}
?> |