Connettersi a MySql da PHP

Prima cosa, occorre avere una tabella su MySql. Sono al capitolo 30, Using PHP with MySql. A pagina 770, si crea una tabella, via client MySql.

Creo, esplicitamente per lo schema test, la tabella products e ci metto dentro un po' di dati:
CREATE TABLE test.products (
id INT NOT NULL AUTO_INCREMENT,
sku VARCHAR(8) NOT NULL,
name VARCHAR(25) NOT NULL,
price DECIMAL(5,2) NOT NULL,
PRIMARY KEY(id)
)

INSERT INTO test.products (sku, name, price)
VALUES ('TY232278', 'AquaSmooth Toothpaste', 2.25);
INSERT INTO test.products (sku, name, price)
VALUES('PO988932', 'HeadsFree Shampoo', 3.99);
INSERT INTO test.products (sku, name, price)
VALUES('ZP457321', 'Painless Aftershave', 4.50);
INSERT INTO test.products (sku, name, price)
VALUES('KL334899', 'WhiskerWrecker Razors', 4.17);
E adesso mi creo una paginetta PHP che usa questi dati.

Primo passo, apro e chiudo una connessione al database, senza fare altro:
 // connect to the database server - notice the '@' to suppress warning
$mysqli = @new mysqli("localhost", "root", "password");

if(mysqli_connect_error())
{
die('Connect Error (' . mysqli_connect_errno() . ') ' .
mysqli_connect_error());
}

echo "Connection to MySql succeeded<br />";

// select the database schema
if($mysqli->select_db("test") == false)
{
echo "Can't select the required database schema<br />";
}
else
{
echo "The required database schema has been selected<br />";
}

// close the connection
$mysqli->close();
Ho chiamato il costruttore di mysqli passandogli l'host (in questo caso localhost), il nome utente (root), e la password (che dovrebbe essere qualcosa di più sensato che "password").
Nota l'uso di "@" prima di new per sopprimere i fastidiosi warning.

In teoria si potrebbe controllare che la connessione sia ok, testando $mysqli->connect_error, se non fosse che ... beh, non funziona. Quindi si usa la funzione vecchio stile mysqli_connect_error().

Se la connessione é su, cerco di accedere il database schema che mi interessa. E dopodiché
chiudo, soddisfatto, la mia sessione.

Nessun commento:

Posta un commento