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.