Site réalisé sur
une plate-forme Word et Web


OVH - Tester une base de données avec un petit script en langage PDO

@logo_WordEtWeb_mini

 

OVH   -   Test de Base de Données via un script en langage PDO

 

Mise à jour le 30 janvier 2022

 

Test de base de données rapide via un petit script en langage PDO « test_SQL_PDO.php » qui va :

·       Ouvrir une connexion PDO à la base,

·       Supprimer une table si elle existe,

·       Créer une table,

·       Faire une requête dans une table,

·       Afficher les résultats de la requête,

·       Fermer la connexion.

 

Ce script PDO permettra,  indépendamment de tous tes autres scripts, de voir si la base de données est accessible ou non, ainsi que la durée du traitement.

 

 

OVH  -  Base de données  -  Infos Base de Données

 

Pour trouver les informations de votre base de données, connectez-vous sur votre compte OVH :

 

      https://www.ovh.com/manager/

 

Menu « WEB »   >    Hébergements   >   Votre Domaine   >   Onglet « Base de données »

 

     

 

 

Adresse du serveur :  <Nom_de_la_Base>.mysql.db

 

 

 

OVH  -  Base de données  -  Script de test  -  test_SQL_PDO.php

 

<?php

 

   error_reporting(E_ALL);   // Activer le rapport d'erreurs PHP

 

   // A partir de PHP 5.6, sinon les caractères accentués seront mal affichés

   ini_set('default_charset', 'iso8859-1');

 

function getmicrotime()

   {

   list($usec, $sec) = explode(" ",microtime());

   return ((float)$usec + (float)$sec);

   }

 

   $Date_start = getmicrotime();

 

 

// ******  Exemples de configuration selon les hébergements mutualisés ******

 

//      $DBhost  = "<Nom_de_la_Base>.mysql.db";

//      $DBowner = "<Nom_de_la_Base>";  // Ton login SQL

//      $DBName  = $DBowner;

 

 

// ******  Fin des exemples de configuration

 

 

// ******  Configuration - Debut ******

   $DBhost  = "<Nom_de_la_Base>.mysql.db";   // Par exemple

   $DBowner = "<Nom_de_la_Base>";  // ton login SQL

   $DBpw    = "";  // ton password SQL

   $DBName  = $DBowner;

// ******  Configuration - Fin ******

     

 

/*   Hébergement mutualisé :

 

Serveur SQL de base : port Vide ou 3306

 

Serveur SQL privé :

   Extrait de https://www.ovh.com/fr/g2023.tout_sur_le_sql_prive

 

 

*/

 

   //  Version de PHP

 

   echo "Version de PHP : <b>".phpversion()."</b><br><br> \n";

 

   $Table_SQL = "Tab_test_DB";

 

   If ($DBPort == "")   $DBconnect = "mysql:dbname=".$DBName.";host=".$DBhost;

   Else  

      {

      // Serveur SQL PRIVE de OVH

      $DBconnect = "mysql:dbname=".$DBName.";host=".$DBhost.";port=".$DBPort;

      }

 

   echo " \$DBconnect = '<b>" .$DBconnect. "</b>' <br>";

   echo "<br> \n";

 

   $user = 'nomdelabase';

   $password = 'motdepasse';

 

   try

      {

 

      // *************************************************************

      // *   Connexion à une base ODBC avec l'invocation de pilote   *

      // *************************************************************

 

      echo " <font color=blue><b> Etablissement de la connexion SQL en mode PDO </b></font> <br>  <br>";

 

      $pdo = new PDO($DBconnect, $DBowner, $DBpw);

 

      echo " new PDO = <b>OK</b> <br> \n";

 

      // *******************************

      // *   Traitement des requêtes   *

      // *******************************

 

      // BONUS: On fait quelque chose d'utile avec ....

      // foreach($pdo->query('SHOW TABLES') as $row)

      //    {

      //    echo"<pre>"; print_r($row); echo "/<pre>";

      //    }

 

      echo " Test de DROP/CREATE de la table '<b>" .$Table_SQL. "</b>' dans la base '<b>" .$DBName. "</b>' sur le serveur '<b>" .$DBhost. "</b>' <br>  <br>";

 

      //  Supression de la table Tab_test_DB

 

      $sql_query="DROP TABLE IF EXISTS `Tab_test_DB` ";    // Requê

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      echo "Supression de la table '<b>" .$Table_SQL. "</b>' - \$sql_query=<b>$sql_query</b><br> \n";

 

      //  Création de la table Tab_test_DB

 

      $sql_query="CREATE TABLE `Tab_test_DB` (  `Id` int(11) NOT NULL auto_increment,  `NOM` varchar(32) NOT NULL default '',  `PRENOM` varchar(32) NOT NULL default '', PRIMARY KEY  (`Id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 ";    // Requête

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      echo "Création de la table '<b>" .$Table_SQL. "</b>' - \$sql_query=<b>$sql_query</b><br> \n";

 

      echo "<br>";  // Ligne de séparation

 

      //  Ajout d'un Premier enregistrement

 

      $sql_query="INSERT INTO `Tab_test_DB`  values ('','DURANDAL','Michel')  ";    // Requête

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      echo "Ajout d'un enregistrement - \$sql_query=<b>$sql_query</b><br> \n";

 

      //  Ajout d'un Deuxième enregistrement

 

      $sql_query="INSERT INTO `$Table_SQL`  values ('','DURANDAL','Pierre')  ";    // Requête

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      echo "Ajout d'un enregistrement - \$sql_query=<b>$sql_query</b><br> \n";

 

      //  Ajout d'un Troisième enregistrement

 

      $sql_query="INSERT INTO `Tab_test_DB`  values ('','accents-éèàâ','Jean-Noël')  ";    // Requête

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      echo "Ajout d'un enregistrement - \$sql_query=<b>$sql_query</b><br> \n";

 

      echo "<br>";  // Ligne de séparation

 

      //  SELECT dans la table Tab_test_DB : NOM='DURANDAL' et  PRENOM = 'Pierre'

 

      $sql_query="SELECT Id, NOM, PRENOM FROM `Tab_test_DB` WHERE NOM = 'DURANDAL' AND PRENOM = 'Pierre'";    // Requête

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      $Count = 0;

      echo "SELECT dans la table '<b>" .$Table_SQL. "</b>' - \$sql_query=<b>$sql_query</b><br> \n";

      while($row = $result_query->fetch())

         {   

         $Count     = $Count + 1;

         $NOM       = $row['NOM'];

         $PRENOM    = $row['PRENOM'];

         echo " Table  '<b>" .$Table_SQL. "</b>' : <b>".$Count."</b> - \$NOM=<b>".$NOM."</b> - \$PRENOM=<b>".$PRENOM."</b> <br> \n";

         }   

      $result_query->closeCursor();   

 

      echo "<br>";  // Ligne de séparation

 

      //  SELECT dans la table Tab_test_DB : tous les enregistrements

 

      $sql_query="SELECT Id, NOM, PRENOM FROM `Tab_test_DB` ";    // Requête

      $result_query = $pdo->query($sql_query);       // Exécution de la requête

      $Count = 0;

      echo "SELECT dans la table '<b>" .$Table_SQL. "</b>' - \$sql_query=<b>$sql_query</b><br> \n";

      while($row = $result_query->fetch())

         {   

         $Count     = $Count + 1;

         $NOM       = $row['NOM'];

         $PRENOM    = $row['PRENOM'];

         echo " Table  '<b>" .$Table_SQL. "</b>' : <b>".$Count."</b> - \$NOM=<b>".$NOM."</b> - \$PRENOM=<b>".$PRENOM."</b> <br> \n";

         }   

      $result_query->closeCursor();   

 

      echo "<br>";  // Ligne de séparation

 

      // Fermeture de la connexion

 

      echo " <b> Fermeture de la connexion SQL en mode PDO </b> <br>  <br>";

      $pdo = null;

 

      }

   catch (PDOException $e)

      {   

      echo "Connexion échouée : <font color=red><b>" . $e->getMessage()."</b></font> <br> \n";

      echo "<br>";  // Ligne de séparation

      }

 

 

   $Date_end = getmicrotime();

   $Duree = $Date_end - $Date_start;

   $Duree = sprintf("%01.2f", $Duree);

   echo " Durée du traitement = <b>$Duree</b> secondes <br> \n";

 

?>

 

 

 

 

OVH  -  Base de données  -  Script de test  -  Erreurs possibles

 

Mise à jour le 30 janvier 2022

 

Erreur : Adresse du serveur erronée

 

$DBconnect = 'mysql:dbname=NOM_BASE;host=NOM_BASE___.mysql.db;port=3306'

Etablissement de la connexion SQL en mode PDO


Connexion échouée : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for NOM_BASE___.mysql.db failed: Name or service not known

 

 

Erreur : Propriétaire

 

$DBconnect = 'mysql:dbname=NOM_BASE___;host=NOM_BASE.mysql.db;port=3306'

Etablissement de la connexion SQL en mode PDO
Connexion échouée : SQLSTATE[HY000] [1045] Access denied for user 'NOM_BASE___'@'10.10.20.104' (using password: YES)

 

 

 

Erreur : Nom de la base

 

$DBconnect = 'mysql:dbname=;host=NOM_BASE.mysql.db;port=3306'

Etablissement de la connexion SQL en mode PDO
new PDO = OK

Test de l'heure du serveur SQL 'NOM_BASE.mysql.db' : date heure = 2022-01-30 12:50:05

Supression de la table 'Tab_test_DB' - $sql_query=SELECT SYSDATE() dth FROM DUAL
Test de DROP/CREATE de la table 'Tab_test_DB

Connexion échouée : SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

 

 

Erreur : Mot de passe

 

$DBconnect = 'mysql:dbname=NOM_BASE;host=NOM_BASE.mysql.db;port=3306'

Etablissement de la connexion SQL en mode PDO
Connexion échouée : SQLSTATE[HY000] [1045] Access denied for user 'NOM_BASE'@'10.10.20.104' (using password: YES)