Cet article présente principalement la méthode MySQLI d'exploitation de la base de données MySQL avec PHP. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Trois façons de fonctionner. MySQL avec PHP Une méthode
connexion non permanente, à chaque utilisation de la base de données, un nouveau processus sera ouvert,
Inconvénients :
Les performances sont faibles et seront abandonnées après PHP5.0.
Connexion permanente, réduisant la pression du serveur, ne prend en charge que MySQL
Inconvénients :
Prenant de la mémoire
peut réaliser les fonctions communes de MySQLi et prend en charge la plupart des bases de données.
Méthode MySQL (orientée objet)
$mysqli = new mysqli(‘host’,‘username’,‘password’,‘database’)
$mysqli -> query($sql);
$result -> fetch_array([MYSQLI_ASSOC]) 一个 $result -> fetch_assoc() 一个 $result -> fetch_all([MYSQLI_ASSOC]) 全部
La méthode 1 est par défaut 索引数组
et devient 关联数组
après l'ajout de paramètres.
La méthode 2 est équivalente à la méthode 1 plus les paramètres.
$mysqli -> close();
<?php // MySQLi增删改例子 // MySQLi方式连接数据库 $mysqli = new mysqli('localhost','root','123456789','test'); // 执行SQL语句 // 使用utf-8编码 $mysqli -> query('set names utf8'); // 插入 //$result = $mysqli -> query("INSERT users(name,money) VALUES('甜筒',4) "); //$result = $mysqli -> query("INSERT users(name,money) VALUES('麦辣鸡腿堡',16) "); // 修改 //$result = $mysqli -> query("UPDATE users SET `name`= '麦旋风' WHERE `id` = 2"); // 删除 //$result = $mysqli -> query("DELETE FROM users WHERE `id` = 5"); //var_dump($result); /*********************查询*****************/ $result = $mysqli -> query("SELECT * FROM users"); // 获取结果集 $data = $result -> fetch_all(MYSQLI_ASSOC); var_dump($data);
Une transaction consiste à combiner plusieurs tâches logiques en une seule exécution Opérations de base de données de l'unité (succès ou échec total).
$mysqli -> autocommit(false)
Cette méthode entraînera la soumission immédiate de la transaction, le paramètre false doit donc être renseigné.
$mysqli -> rollback()
S'il y a des erreurs dans les données, vous pouvez utiliser cette méthode pour restaurer les données.
$mysqli -> commit()
$mysqli -> close()
Lorsque nous utilisons query() pour exécuter des instructions SQL Parfois, il ne se soucie pas des modifications apportées à la base de données, mais uniquement de savoir si l'instruction SQL est fausse.
Nous ne pouvons donc pas nous fier à la valeur de retour de query() pour déterminer si l'opération réussit ou non.
Pour utiliser le nombre de lignes concernées pour déterminer :
$mysqli -> affected_rows
query('set names utf8'); // 开启事务 $mysqli -> autocommit(false); //SQL $sql1 = "UPDATE users SET `money`=`money`+1 WHERE `id` = 1"; $sql2 = "UPDATE users SET `money`=`money`-1 WHERE `id` = 11"; // 执行SQL语句 $result = $mysqli -> query($sql1); $r1 = $mysqli -> affected_rows; $result = $mysqli -> query($sql2); $r2 = $mysqli -> affected_rows; if($r1 > 0 && $r2 > 0){ // 提交事务 $mysqli -> commit(); echo '操作成功'; }else{ // 事务回滚 $mysqli -> rollback(); echo '操作失败'; }
Prétraitement, soumettez d'abord l'instruction SQL à Côté serveur, une précompilation est effectuée.
Lorsque le client exécute une instruction SQL, il lui suffit de télécharger les paramètres d'entrée
Si plusieurs lectures ou stockages sont impliqués, l'efficacité est supérieure à celle des opérations d'exécution SQL ordinaires ;
Le paramètre dans la VALUE de l'instruction SQL est remplacé par un point d'interrogation.
$stmt = $mysqli -> prepare($sql)
$stmt -> bind_param('参数类型', 参数1, 参数2...)
Description du type de paramètre :
string-s int-i double-d bool-b
Rappel spécial :
Écrivez les types de paramètres dans l'ordre sans espaces ni virgules. Par exemple, le paramètre 1 est une chaîne et un paramètre. 2 est bool, écrit comme ceci : $stmt -> bind_param('si', 参数1, 参数2)
$stmt -> bind_result()
Note spéciale :
La variable de bind_result correspond au nom du champ dans l'instruction select, alors assurez-vous de faire attention à la quantité et à la commande ! ! !
$stmt -> execute()
$stmt->store_result()
Veuillez consulter le lien ci-dessous pour plus de détails
Analyse détaillée
$stmt ->fetch()
query('set names utf8'); // SQL语句 $sql = "SELECT * FROM users WHERE id>? "; // 创建预编译对象 $stmt = $mysqli -> prepare($sql); // 参数绑定 $id = 1; $stmt -> bind_param('i',$id); // 绑定结果集 参数要和表的参数一致 $stmt -> bind_result($id,$name,$money,$age); // 执行SQL语句 $stmt -> execute(); // 执行SQL语句 $stmt->store_result(); // 接收结果集 while($stmt -> fetch()){ $data[] = [ 'id' => $id, 'name' => $name, 'money' => $money ]; } var_dump($data);
Recommandations associées :
Base de données d'opération PHP : sélectionnez l'opération opération
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!