PHP implémente la méthode d'utilisation de mysqli pour faire fonctionner la base de données MySQL

墨辰丷
Libérer: 2023-03-28 08:16:02
original
1581 Les gens l'ont consulté

Cet article présente principalement la méthode d'utilisation de mysqli pour faire fonctionner la base de données MySQL en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

L'extension mysqli de PHP fournit toutes les fonctionnalités de sa version précédente. De plus, puisque MySQL est déjà un serveur de base de données complet, cela ajoute de nouvelles fonctionnalités à PHP. MySQLi prend également en charge ces nouvelles fonctionnalités.

1. Établissement et déconnexion des connexions

Lors de l'interaction avec une base de données MySQL, la connexion est établie en premier et la connexion est déconnectée en dernier. Cela inclut la connexion au serveur et la sélection d'une base de données, et enfin la fermeture de la connexion. connexion. Comme pour presque toutes les fonctionnalités de MySQLi, cela peut être accompli en utilisant une approche orientée objet ou une approche procédurale.

1. Créez un objet mysqli

$_mysqli = newmysqli();

2. . Connectez l'hôte, l'utilisateur, le mot de passe et la base de données de MySQL

$_mysqli->connect( 'localhost' , 'root' , 'yangfan' , 'guest' );

3. Créez un objet mysqli avec les paramètres de connexion

$_mysqli = newmysqli( 'localhost' , 'root' , 'yangfan' , ' guest ' );

4. Sélectionnez la base de données individuellement

$_mysqli->select_db( 'testguest' );

5. Déconnectez MySQL

$_mysqli->close();

2. Gestion des erreurs de connexion

S'il ne parvient pas à se connecter à la base de données MySQL, il est peu probable que la page continue à faire le travail prévu. Assurez-vous donc de surveiller les erreurs de connexion et de réagir en conséquence. L'extension Mysqli contient de nombreuses fonctionnalités qui peuvent être utilisées pour capturer des informations sur les erreurs, telles que les méthodes mysqli_connect_errno() et mysqli_connect_error().

La fonction mysqli_connect_errno() renvoie le numéro d'erreur renvoyé lors de la connexion à la base de données.

La fonction MySQLi_connect_error() renvoie le code d'erreur renvoyé lors de la connexion à la base de données.

if(mysqli_connect_errno()) {

echo' 数据库连接错误,错误信息: ' .mysqli_connect_error();

exit();

}
Copier après la connexion


L'attribut errno renvoie le numéro d'erreur lors du fonctionnement de la base de données.

L'attribut error renvoie le code d'erreur lors du fonctionnement de la base de données.

if( $_mysqli ->errno) {

echo' 数据库操作时发生错误,错误代码是: ' . $_mysqli ->error;

}
Copier après la connexion

Trois. Interagir avec la base de données

La grande majorité des requêtes sont liées aux tâches de création, de récupération, de mise à jour et de suppression, qui sont collectivement appelées CRUD.

1. Obtenir des données

La majeure partie du travail des programmes Web consiste à obtenir et à formater les données demandées. Pour ce faire, vous devez envoyer une requête SELECT à la base de données, puis traiter les résultats de manière itérative, afficher chaque ligne dans le navigateur et l'afficher selon vos propres besoins.

// 设置一下编码 utf8

$_mysqli->set_charset( "utf8" );

// 创建一句 SQL 语句

$_sql = "SELECT* FROM t g_user" ;

// 执行 sql 语句把结果集赋给$_result

$_result = $_mysqli->query( $_sql );

// 将结果集的第一行输出

print_r( $_result->fetch_row());

// 释放查询内存 ( 销毁 )

$_result->free();
Copier après la connexion

2. Analyser les résultats de la requête

Une fois la requête exécutée et prêt Bon ensemble de résultats, vous pouvez maintenant analyser les lignes de résultats obtenues. Vous pouvez utiliser plusieurs méthodes pour obtenir les champs de chaque ligne. La méthode que vous choisissez dépend principalement de vos préférences personnelles, car seule la méthode de référencement des champs diffère.

Mettez l'ensemble de résultats dans l'objet

Puisque vous pouvez utiliser la syntaxe orientée objet de mysqli, vous pouvez gérer l'ensemble de résultats de manière orientée objet. Cela peut être fait en utilisant la méthode fetch_object().

//Emballer l'ensemble de résultats dans un objet

$_row = $_reslut->fetch_object();

// Afficher un champ (attribut) dans l'objet

echo $_row->tg_username;

// Parcourir tous les noms d'utilisateurs

while (!! $_row =$_reslut ->fetch_object()) {

echo$_row ->tg_username. '
' ;

}

Utiliser un tableau d'index et un tableau associatif

//Emballer le jeu de résultats dans un tableau (index + association)

$_row = $_reslut->fetch_array();

// Afficher le champ avec l'index 3 ( Attribut)

echo $_row [ 3 ];

// Emballez l'ensemble de résultats dans un tableau d'index

$_row = $_reslut->fetch_row();

echo $_row [ 3 ];

// Emballer l'ensemble de résultats dans un tableau associatif

$_row = $_reslut->fetch_assoc();

echo $_row ['tg_username' ];

3. Déterminez la ligne sélectionnée et les lignes affectées

Il est généralement souhaitable de être capable de déterminer le SELECT Le nombre de lignes renvoyées par la requête ou affectées par une requête INSERT, UPDATE ou DELET. Nous pouvons utiliser les deux attributs num_rows et affectées_rows

// Lors de l'utilisation d'une requête, si vous souhaitez savoir combien de lignes ont été interrogées par SELECT, vous pouvez utiliser num_rows.

echo $_reslut->num_rows;

// Lors de l'utilisation de requêtes, si vous souhaitez connaître le nombre de lignes affectées par les requêtes SELECT, INSERT, UPDATE et DELETE, vous pouvez utiliser affecté_rows ; notez qu'il s'agit d'un attribut sous $_mysqli

echo $_mysqli->affected_rows;

4. 移动指针的操作和获取字段

当你并不想从第一条数据开始获取 ,或者并不想从第一个字段获取 , 你可以使用数据指针移动或者字段指针移动的方式调整到恰当的位置。 当然 , 你还可以获取字段的名称及其相关的属性。

// 计算有多少条字段

echo $_reslut->field_count;

// 获取字段的名称

$_field = $_reslut->fetch_field();

echo $_field->name;

// 遍历字段

while (!! $_field =$_reslut ->fetch_field()) {

echo$_field ->name. &#39;<br />&#39; ;

}

// 一次性取得字段数组

print_r( $_reslut->fetch_fields());

// 移动数据指针

$_reslut->data_seek( 5 );

// 移动字段指针

$_reslut->field_seek( 2 );
Copier après la connexion

5. 执行多条 SQL 语句

有的时候 ,我们需要在一张页面上同时执行多条 SQL 语句 , 之前的方法就是分别创建多个结果集然后使用。但这样资源消耗很大,也不利于管理。PHP 提供了执行多条 SQL 语句的方法 $_mysqli->multi_query() ;

// 创建多条 SQL 语句

$_sql .="SELECT * FROM tg_user;" ;

$_sql .="SELECT * FROM tg_photo;" ;

$_sql .="SELECT * FROM tg_article" ;

// 开始执行多条 SQL 语句

if ( $_mysqli->multi_query( $_sql )) {

//开始获取第一条 SQL 语句的结果集

$_result= $_mysqli ->store_result();

print_r($_result ->fetch_array());

//将结果集指针移到下一个

$_mysqli->next_result();

$_result= $_mysqli ->store_result();

print_r($_result ->fetch_array());

$_mysqli->next_result();

$_result= $_mysqli ->store_result();

print_r($_result ->fetch_array());

} else {

echo&#39;sql 语句有误! &#39; ;

}
Copier après la connexion

6. 执行数据库事务

事务 (transaction)是作为整个一个单元的一组有序的数据库操作 。 如果一组中的所有操作都成功 , 则认为事务成功 ,即使只有一个失败操作 , 事务也不成功 。 如果所有操作成功完成 , 事务则提交 (commit) ,其修改将作用于所有其他数据库进程 。 如果一个操作失败 , 则事务将回滚 (roll back),该事务所有操作的影响都将取消。

首先 , 您的 MySQL 是InnoDB 或 BDB 引擎的一种 , 一般来说 , 你安装了 AppServ 的集成包 , 你选择 InnoDB的引擎的数据库即可 。 如果你建立的表不是 InnoDB , 可以在 phpmyadmin里修改。

// 首先你必须关闭自动提交数据

$_mysqli->autocommit( false );

// 创建一个 SQL 语句,必须同时运行成功,不能出现一个成功,一个失败

$_sql .="UPDATE tg_friend SET tg_state=tg_state+5 WHERE tg_id=1;" ;

$_sql .="UPDATE tg_flower SET tg_flower=tg_flower-5 WHERE tg_id=1;" ;

// 执行两条 SQL 语句

if ( $_mysqli->multi_query( $_sql )) {

//获取第一条 SQL 一影响的行数

$_success= $_mysqli ->affected_rows == 1 ? true : false ;

//下移,第二条 SQL

$_mysqli->next_result();

//获取第二条 SQL 影响的行数

$_success2 = $_mysqli ->affected_rows == 1 ? true : false ;

//判断是否都正常通过了,两个 SQL

if( $_success && $_success2 ) {

$_mysqli->commit();

echo&#39; 完美提交! &#39; ;

}else {

$_mysqli->rollback();

echo&#39; 程序出现异常! &#39; ;

}

}

} else {

echo"SQL 语句有误: " . $_mysqli ->errno. $_mysqli ->error;

}

// 最后还必须开启自动提交

$_mysqli->autocommit( true );
Copier après la connexion

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php实现的mysqldb读写分离操作类

PHP使用mysqli操作MySQL数据库的方法

php、mysql查询当天,查询本周,查询本月的数据实例详解

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!