Il logo del sito

Appunti sull'interfaccia di PHP con MySQL

Traduzione da MySQL Create DB

PHP MySQL Database

§ 3. MySQL Create DB

Un database consiste di una o più tabelle.

Per creare o cancellare un database MySQL occorre avere i privilegi CREATE.

§ 3.1 Creare un database MySQL usando MySQLi e PDO

Per creare un datatabase si usa lo statement CREATE DATABASE

Creerò tre database, myDB_1, myDB_2, myDB_3 secondo le modalità di connessione MySQLi object-oriented, MySQLi procedural e PDO.

§ 3.1.1 CREATE DATABASE con MySQLi object-oriented

   <?php
      include 'infoConnessione.php';
   // Create connection 
   
      $conn = new mysqli($servername, $username, $password);
      
   // Check connection
   
      if ($conn->connect_error){
         die("Connection failed: " . $conn->connect_error);
      }
      
      echo "<p class=phpoutput> Connessione mysqli object-oriented riuscita. </p>;
      
   // Create database
   
      $sql = "CREATE DATABASE myDB_1";
      
      if ($conn->query($sql)==TRUE){
         echo "<p class=phpoutput > Database myDB_1 creato con successo</p>";
      } else {
         echo "<p class=phpoutput > Errore nella creazione del database myDB_1: "
         . $conn->error . "</p>";
      }
      
    // Close connection
     
      $conn->close();
   ?>             

Connessione mysqli object-oriented riuscita.

Errore nella creazione del database myDB_1: Access denied for user 'clamin'@'localhost' to database 'myDB_1'

La creazione del database myDB_1 fallisce perchè il mio contratto di hosting prevede la possibilità di creare un solo database. Cosa che ho già fatto.

§ 3.1.2. CREATE DATABASE con MySQLi procedural

   <?php
      include 'infoConnessione.php';
      
   // Create connection 
   
      $conn = new mysqli($servername, $username, $password);
      
   // Check connection
   
      if (!$conn){
         die("Connection failed: " . mysqli_connect_error);
      }
      echo "<p class=phpoutput> Connessione mysqli procedural riuscita. </p>;
      
      // Create database
      
      $sql = "CREATE DATABASE myDB_2";
      if (mysqli_query($conn, $sql)) {
         echo "<p class=phpoutput > Database myDB_2 creato con successo</p>";
      } else {
         echo "<p class=phpoutput > Errore nella creazione del database myDB_2: "
         . mysqli_error($conn) . "</p>";
      }
      
   // Close connection
       
      mysqli_close($conn);
   ?>             

Connessione mysqli procedural riuscita

Errore nella creazione del database myDB_2: Access denied for user 'clamin'@'localhost' to database 'myDB_2'

La creazione del database myDB_2 fallisce perchè il mio contratto di hosting prevede la possibilità di creare un solo database. Cosa che ho già fatto.

§ 3.1.3. CREATE DATABASE con PDO

   <?php
     include 'infoConnessione.php';
     $conn = null;     
      try{
      // Create connection 
      
         $conn = new PDO("mysql:host=$servername; dbname=myDB", $username, $password);
         
      // Set Attribute 
      
         $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
         
         echo "<p class=phpoutput> Connessione pdo riuscita. </p>";
         
      // Create database 
        
         $sql = "CREATE DATABASE myDB_3";
      // use exec() because no results are returned
         $conn->exec($sql);
         echo "<p class=phpoutput > Database myDB_3 creato con successo</p>";
      }
      catch(PDOException $e){
         echo "<p class=phpoutput >". $sql. "</p>";
         echo "<p class=phpoutput >". $e->getMessage(). "</p>";
      }
      
      // Close connection 
       
      if ($conn != null){
         $conn = null;
      } 
   ?>             

Connessione pdo riuscita

CREATE DATABASE myDB_3

SQLSTATE[42000]: Syntax error or access violation: 1044 Access denied for user 'clamin'@'localhost' to database 'myDB_3'

La creazione del database myDB_3 fallisce perchè il mio contratto di hosting prevede la possibilità di creare un solo database. Cosa che ho già fatto.