Codice PHP:
<?php
/*** mysql hostname ***/
$hostname = 'localhost';
/*** mysql username ***/
$username = 'username';
/*** mysql password ***/
$password = 'password';
/*** database name ***/
$dbname = 'dbname';
try {
$options = array(PDO::ATTR_AUTOCOMMIT=>FALSE);
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password, $options);
/*** echo a message saying we have connected ***/
echo 'Connected to database
';
/*** set the PDO error mode to exception ***/
//$dbh->setAttribute(PDO_ATTR_AUTOCOMMIT, 0);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*** CREATE table statements ***/
$table = "CREATE TABLE animals ( animal_id MEDIUMINT(8) NOT NULL PRIMARY KEY,
animal_type VARCHAR(25) NOT NULL,
animal_name VARCHAR(25) NOT NULL
)";
$dbh->exec($table);
/*** begin the transaction ***/
$dbh->beginTransaction();
/*** INSERT statements ***/
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (1, 'emu', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (2, 'funnel web', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (3, 'lizard', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (4, 'dingo', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (5, 'kangaroo', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (6, 'wallaby', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (6, 'wombat', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (8, 'koala', 'bruce')");
$dbh->exec("INSERT INTO animals (animal_id, animal_type, animal_name) VALUES (9, 'kiwi', 'bruce')");
/*** commit the transaction ***/
$dbh->commit();
/*** echo a message to say the database was created ***/
echo 'Data entered successfully
';
}
catch(PDOException $e)
{
/*** roll back the transaction if we fail ***/
$dbh->rollback();
/*** echo the sql statement and error message ***/
echo $sql . '
' . $e->getMessage();
}
?>
mi aspettavo che nella tabella in oggetto 'animals' non fossero presenti nessun record inserito perchè avendo violato la chiave primaria 'animal_id = 6' e non avendo fatto la commit.