検索
ホームページバックエンド開発PHPチュートリアルmysqliを使用してPHPでMySQLデータベースを操作する方法

この記事では、mysqli を使用して PHP で MySQL データベースを操作する方法を主に紹介します。興味のある方はぜひ参考にしてください。

PHP の mysqli 拡張機能は、以前のバージョンのすべての機能を提供します。さらに、MySQL はすでにフル機能のデータベース サーバーであるため、これにより PHP にいくつかの新機能が追加されます。 Mysqli はこれらの新機能もサポートしています。

1つ。 接続の確立と切断

MySQL データベースと対話する場合、最初に接続が確立され、最後に接続が切断されます。これには、サーバーへの接続とデータベースの選択、そして最後に接続の終了が含まれます。 mysqli のほぼすべての機能と同様に、これはオブジェクト指向のアプローチまたは手続き型の方法を使用して実現できます。

1. mysqli オブジェクトを作成します

$_mysqli = newmysqli();

2. MySQL ホスト、ユーザー、パスワード、データベースを接続します

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

3. 接続パラメーターを使用して mysqli オブジェクトを作成します

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

4。

Ⅱ。 接続エラーの処理

MySQL データベースに接続できない場合、このページが意図したジョブを実行し続ける可能性はほとんどありません。したがって、接続エラーを必ず監視し、それに応じて対応してください。 Mysqli 拡張機能には、mysqli_connect_errno() メソッドや mysqli_connect_error() メソッドなど、エラー情報を取得するために使用できる多くの機能が含まれています。 mysqli_connect_errno() 関数は、データベースへの接続によって返されたエラー番号を返します。

Mysqli_connect_error() 関数は、データベースへの接続によって返されたエラー コードを返します。

if(mysqli_connect_errno()) {

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

exit();

}

errno 属性は、データベース操作中のエラー番号を返します。

error 属性は、データベース操作中のエラー コードを返します。

りー


三. データベースとの対話

クエリの大部分は、作成、取得、更新、削除のタスクに関連しており、これらは総称して CRUD と呼ばれます。

1. データを取得する

Web プログラムの作業のほとんどは、要求されたデータを取得してフォーマットすることです。これを行うには、SELECT クエリをデータベースに送信し、結果を繰り返し処理し、各行をブラウザに出力し、独自の要件に従って出力する必要があります。

if( $_mysqli ->errno) {

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

}

2. クエリ結果を解析する

クエリが実行され、結果セットが準備されたら、取得された結果行を解析します。 フィールドを参照する方法のみが異なるため、どの方法を選択するかは主に個人の好みによって異なります。

結果セットをオブジェクトに入れる

mysqliのオブジェクト指向構文を使用できるため、結果セットを完全にオブジェクト指向で管理できます。これは、 fetch_object() メソッドを使用して実行できます。

// 結果セットをオブジェクトにパックします $_row = $_reslut->fetch_object();// オブジェクト内のフィールド (属性) を出力します

echo $_row->tg_username;

/ / すべてのユーザー名を走査します

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

echo$_row ->tg_username. '
;

}

インデックス配列と連想配列を使用します

//結果セットを配列(インデックス+連想)にパックします

$_row = $_reslut->fetch_array();

//添字3を付けてフィールド(属性)を出力します

echo $_row [ 3 ];

// 結果セットをインデックス配列にパックします $_row = $_reslut->fetch_row();

echo $_row [ 3 ];

// をパックします結果セット 連想配列にパックされます

$_row = $_reslut->fetch_assoc();

echo $_row ['tg_username' ];

3. 選択された行と影響を受ける行を決定します

SELECT クエリによって返される行数、または INSERT、UPDATE、または DELET クエリによって影響を受ける行数を確認できるようにしたい。 num_rows とaffected_rows の 2 つの属性を使用できます

// クエリを使用するときに、SELECT によってクエリされた行数を知りたい場合は、num_rows を使用できます。

echo $_reslut->num_rows;

// クエリを使用する場合、SELECT、INSERT、UPDATE、および DELETE クエリによって影響を受ける行の数を知りたい場合は、affected_rows が属性であることに注意してください。 $_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 );

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

}

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

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


相关推荐:

nodejs连接mysql数据库及基本知识点详解

php基于PDO实现功能强大的MYSQL封装类实例详解

php+mysql+jquery实现日历签到功能的方法

以上がmysqliを使用してPHPでMySQLデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

PHPセッションからデータをどのように取得しますか?PHPセッションからデータをどのように取得しますか?May 01, 2025 am 12:11 AM

toretrievedatafrompsession、Startthessession withsession_start()andAccessvariablesshe $ _SessionArray.forexample:1)Startthessession:session_start()

セッションを使用してショッピングカートを実装するにはどうすればよいですか?セッションを使用してショッピングカートを実装するにはどうすればよいですか?May 01, 2025 am 12:10 AM

セッションを使用して効率的なショッピングカートシステムを構築する手順には、次のものがあります。1)セッションの定義と機能を理解します。セッションは、リクエスト全体でユーザーのステータスを維持するために使用されるサーバー側のストレージメカニズムです。 2)ショッピングカートに製品を追加するなど、基本的なセッション管理を実装します。 3)製品の量管理と削除をサポートし、高度な使用状況に拡大します。 4)セッションデータを持続し、安全なセッション識別子を使用することにより、パフォーマンスとセキュリティを最適化します。

PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。