MySQLi et php
Par llwynrt le vendredi, mars 6 2015, 14:52 - Lien permanent
define('MYSQL_SERVEUR', 'localhost');
define('MYSQL_UTILISATEUR', 'root');
define('MYSQL_MOTDEPASSE', '');
define('MYSQL_BASE', 'test');
//connexion à la base MySQL
$mysql = new MySQLi(MYSQL_SERVEUR, MYSQL_UTILISATEUR, MYSQL_MOTDEPASSE, MYSQL_BASE);
/* Vérification de la connexion */
if ($mysqli->connect_errno) {
die("Echec de la connexion : %s\n", $mysqli->connect_error);
}
//configuration du charset
$mysqli->set_charset("utf8");
//Requête SQL ne retournant pas de résultat (ex: CREATE TABLE, INSERT, UPDATE, etc.)
$sql = 'CREATE TABLE IF NOT EXISTS blog (login VARCHAR(64) ,message TEXT ,dateheure DATETIME)';
$mysql->query($sql);
$sql = 'INSERT INTO blog (login, message, dateheure) VALUES(\'phpfacile\', \'Tuto MySQL\', NOW())';
$mysql->query($sql);
//Requête SQL retournant des résultats (ex: SELECT)
$sql = 'SELECT * FROM blog';
$res = $mysql->query($sql);
while ($row = $res->fetch_array()) {
echo $row['login'].':'.$row['dateheure'].':'.$row['message'].'<br />'."\n"; }
//nombre de lignes
$res->num_rows;
// Se protéger des injections SQL
$city = $mysqli->real_escape_string($city);
$mysqli->query("INSERT into myCity (Name) VALUES ('$city')");
//Requête préparée
$stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->close();
//libération des résultats
$res->free();
//déconnexion de la base MySQL
$mysql->close();
/*fetch_array() : Le second argument optionnel est une constante
indiquant quel type de tableau doit être renvoyé à partir de la
ligne de données courante. Les valeurs possibles pour ce paramètre
sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, et MYSQLI_BOTH. En
utilisant la constante MYSQLI_ASSOC, cette fonction se comportera
comme la fonction mysqli_fetch_assoc(), tandis que MYSQLI_NUM la
fera agir comme la fonction mysqli_fetch_row().
La constante MYSQLI_BOTH, créera elle un tableau qui sera à la fois
associatif et indexé numériquement.*/