Maison > développement back-end > tutoriel php > Méthode MySQLI pour faire fonctionner la base de données MySQL

Méthode MySQLI pour faire fonctionner la base de données MySQL

不言
Libérer: 2023-03-29 21:46:02
original
2876 Les gens l'ont consulté

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

MySQL

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.

MySQLi

Connexion permanente, réduisant la pression du serveur, ne prend en charge que MySQL

Inconvénients :
Prenant de la mémoire

PDO (Recommandé)

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)

Utilisation de base :

1) Se connecter à la base de données

$mysqli = new mysqli(‘host’,‘username’,‘password’,‘database’)
Copier après la connexion

2 ) Exécuter l'instruction SQL

$mysqli -> query($sql);
Copier après la connexion

3) Obtenez le résultat

$result -> fetch_array([MYSQLI_ASSOC])     一个
$result -> fetch_assoc()                   一个

$result -> fetch_all([MYSQLI_ASSOC])       全部
Copier après la connexion

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.

4) Fermer la connexion

$mysqli -> close();
Copier après la connexion

Exemple :

<?php

// MySQLi增删改例子

// MySQLi方式连接数据库
$mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456789&#39;,&#39;test&#39;);

// 执行SQL语句
// 使用utf-8编码
$mysqli -> query(&#39;set names utf8&#39;);

// 插入
//$result = $mysqli -> query("INSERT users(name,money) VALUES(&#39;甜筒&#39;,4) ");
//$result = $mysqli -> query("INSERT users(name,money) VALUES(&#39;麦辣鸡腿堡&#39;,16) ");

// 修改
//$result = $mysqli -> query("UPDATE users SET `name`= &#39;麦旋风&#39; 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);
Copier après la connexion

Contrôle des transactions

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).

1) Ouvrez la transaction

$mysqli -> autocommit(false)
Copier après la connexion

Cette méthode entraînera la soumission immédiate de la transaction, le paramètre false doit donc être renseigné.

2) Annulation de la transaction

$mysqli -> rollback()
Copier après la connexion

S'il y a des erreurs dans les données, vous pouvez utiliser cette méthode pour restaurer les données.

3) Soumission de la transaction

$mysqli -> commit()
Copier après la connexion

4) Fermer la connexion

$mysqli -> close()
Copier après la connexion

Remarque :

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
Copier après la connexion

Instance

 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 '操作失败';
}
Copier après la connexion

Prétraitement

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 ;

1) $sql = « ??? »

Le paramètre dans la VALUE de l'instruction SQL est remplacé par un point d'interrogation.

2) Créer un objet précompilé

 $stmt = $mysqli -> prepare($sql)
Copier après la connexion

3) Affectation des paramètres

$stmt -> bind_param(&#39;参数类型&#39;, 参数1, 参数2...)
Copier après la connexion

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(&#39;si&#39;, 参数1, 参数2)

4) Ensemble de résultats de liaison variable (cette étape n'est requise que pour les requêtes, ignorez cette étape pour d'autres opérations)

$stmt -> bind_result()
Copier après la connexion

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 ! ! !

5) Exécutez le code

$stmt -> execute()
Copier après la connexion

6) Enregistrez l'enregistrement de la requête dans le programme PHP (l'opération de requête est facultative)

$stmt->store_result()
Copier après la connexion

Veuillez consulter le lien ci-dessous pour plus de détails

Analyse détaillée

7) Obtenez les résultats de chaque enregistrement

$stmt ->fetch()
Copier après la connexion

Exemple

 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);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal