ホームページ バックエンド開発 PHPチュートリアル PHP ストアド ルーチンとストアド プロシージャの入門チュートリアル_PHP チュートリアル

PHP ストアド ルーチンとストアド プロシージャの入門チュートリアル_PHP チュートリアル

Jul 20, 2016 am 11:09 AM
php 入門チュートリアル 存在する ストレージ チュートリアル データベース はい サーバ プロセス

php チュートリアル ストアド ルーチン、ストアド プロシージャ入門チュートリアル

ストアド ルーチンとは何ですか?
ストアド ルーチンは、データベース チュートリアル サーバーに保存されている一連の SQL ステートメントであり、クエリ Order で指定された名前を呼び出すことで実行されます。
なぜストアドプロシージャを使用するのですか?
アプリケーションには 2 種類あり、1 つは Web ベース、もう 1 つはデスクトップ ベースであることは誰もが知っています。どちらもデータベースと対話してデータ アクセスを完了します。これら 2 つのタイプを含むアプリケーションがあるとします。次に、クエリ SQL ステートメントの 1 つを変更する必要があるとします。アプリケーションが大きくて複雑な場合、問題が発生することがあります。これを維持するのは簡単ではありません。さらに、Web プログラムまたはデスクトップに SQL クエリ ステートメントを配置すると、SQL インジェクションによって簡単に破損する可能性があります。ストアド ルーチンは、これらの問題の解決に役立ちます。
ストアド プロシージャ、ストアド ルーチン、ストアド ファンクションの違い
Mysql ストアド ルーチンには、実際にはストアド プロシージャとストアド ファンクションが含まれており、これらを総称してストアド ルーチンと呼びます。
このうち、ストアド プロシージャは主にレコードの取得、レコードの挿入、レコードの更新、またはレコードの削除の作業、つまり選択、挿入、削除、更新などの作業を完了します。ストアド関数はクエリ作業を完了し、入力パラメータを受け入れて結果を返すだけです。

ストアド プロシージャとストアド関数の作成

プロシージャの作成 ストアド プロシージャ名 (パラメーター)
ストアド プロシージャの本体

関数の作成 ストアド関数名 (パラメーター)
ストアド関数の本体
データベース omcmc にテーブル db_info があるとします。構造は次のとおりです :
SET FOREIGN_KEY_CHECKS=0;
-----------------------------
-- db_news のテーブル構造
-- -- ------------------------
DROP TABLE IF EXISTS `db_news`;
CREATE TABLE `db_news` (
`id ` int(10) NOT NULL auto_increment,
`title` varchar(200) NOT NULL,
`editor` varchar(20) デフォルト NULL,
`origin` varchar(20) デフォルト NULL,
`tags` varchar(200)デフォルト NULL,
`content` text NOT NULL,
`hits` int(10) デフォルト '0',
`ip` varchar(15) NOT NULL,
`time` int(10) NOT NULL,
主キー ( `id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

----------------------------
-- レコード
- - ----------------------------
`db_news` の値に挿入 ('1'、最初のアプリ' , 'xqbar.com' , 'xqbar.com', 'omcmc', 'detail. ', '100', '127.0.0.1', '1215051225');

上記の表を使用して、単純なストアド プロシージャを作成します
プロシージャ select_news( ) を作成します
タイトル、db_news からのヒットを選択します;

ターミナルで実行して
を呼び出します
上のスクリーンショットから、ストアド プロシージャを呼び出す方法がわかります

ストアド プロシージャを呼び出す
ストアド プロシージャ name() を呼び出す;

上記では、単純なストアド プロシージャを作成しました。もちろん、アプリケーションではそのような単純なストアド プロシージャを使用できません。必要なのは、必要な結果データを返すためにパラメータをストアド プロシージャに渡すことができることです。ストアド プロシージャのパラメータについて学習しましょう。
ストアド プロシージャのパラメータ
通常、ストアド プロシージャはユーザー パラメータを受け入れ、呼び出し元のユーザーに結果を返します。 MySQL チュートリアルでは、ストアド プロシージャのパラメータについて、各パラメータがそのパラメータ名、データ型、およびパラメータが入力パラメータであるか、情報を返すために使用されるか、またはその両方であるかを宣言する必要があると規定しています。ストアド関数の場合、php は入力パラメータのみをサポートします。
パラメータを宣言するときは、キーワード IN、OUT、INOUT を使用する必要があります。
その中に:
IN: 入力パラメータに使用されます
OUT: 戻りパラメータに使用されます
INOUT: ストアド プロシージャにパラメータ値を渡し、値が変化した場合に返すために使用されます
さらに、宣言されたパラメータについては、次のように規定されていますプロシージャを保存するときは、パラメータがプロシージャの外で呼び出されるように、パラメータ名の前に @ を追加する必要があります。 次に、ストアド プロシージャに情報番号を渡すように上記のストアド プロシージャを変更します。 select_news を選択し、表示できる対応する情報タイトルを返します。

存在する場合はプロシージャを削除 select_news;

プロシージャを作成 select_news(IN id int,OUT title varchar(200))
select db_news.title from db_news where db_news.id=id;

ターミナルで実行して呼び出します


注意してください呼び出し形式に
call select_news(1,@title);
ここで、1 は渡したい情報番号、title は返される対応する情報番号 title です。OUT であるため、前に @ を追加する必要があります。再度呼び出すときにそれを削除し、手順外で呼び出します。 (以下の例を参照)
存在する場合はプロシージャを削除 getNum;
プロシージャを作成 getNum(OUT num int)
select 100 into num;

call getNum(@num);

select @num;
スクリーンショット:

PHP ストアド ルーチンとストアド プロシージャの高度な学習 パート 2
前回の記事に引き続き、戻り値を指定して前の例を呼び出す場合、次のメソッドを使用してストアド プロシージャを呼び出すことができます:
select @return パラメータ;
私たちは使用しますこのメソッドを今すぐ呼び出して、上で作成した select_news を呼び出して見てみましょう

返されるタイトルが、select_news(1,@title) のようにデータベース番号に対応するデータを返すのではなく、なぜ null なのか疑問に思う人もいるかもしれません。ストアド プロシージャ本体は、タイトルのパラメータ戻り値を返しません。

ストレージ関数を見てみましょう
引き続き db_news テーブルを例に挙げますが、ストアド ルーチンに関するその他の知識をこのストレージ関数に追加して、今回説明する学習オブジェクトを紹介します。

drop function if possible count_news;
delimiter //
create function count_news(hits int) returns int
comment '受信クリック数に応じて、この数を超えるメッセージの数をカウントします'
begin
destroy total_news int;
hits_num int デフォルト 0 を宣言します;
if hits>=0 then
set hits_num=hits;
select count(id) into total_news from db_news where db_news.hits>hits_num;
else
set total_news=0;
end if;
return total_news;
end;
//
delimiter ;



上記のストアド関数では、ストアド ルーチン変数の宣言、その値、判定ステートメント、ストアド関数固有の戻り値の型、およびストアド ルーチンがどのようなものであるか 説明 (コメント)。

ストアド プロシージャの戻りパラメータとの違いは、ストアド ファンクションを定義するときに、どの変数が戻りパラメータであるかを直接宣言する必要はなく、データ型を宣言するために return のみを使用することです。 return パラメータは関数本体内で返されるデータ変数を返す形式で表現されます。ここで注意する必要があるのは:
ストレージ関数は入力パラメーターのみをサポートし、入力パラメーターの前に IN または INOUT はありません

上記のストレージ関数に戻り、コードの意味を説明します:
drop 関数。 if doesn't count_news;
ストレージが存在する場合 関数 count_news はストアド プロシージャと同様に、次のステートメントを使用してストアド プロシージャまたは関数を削除できます
drop プロシージャ|関数 [存在する場合] ストアド プロシージャ名|ストアド関数名;
delimiter //
mysql のデフォルトを変更するには、セミコロン (;) を使用します。デリミタを使用すると、元のデフォルトのセミコロン (;) 終了記号は最後まで機能しなくなります。シンボルが復元されました。
create function count_news(hits int) returns int
storage 関数のパラメータは入力パラメータのみであり、返す前に IN または INOUT を宣言しないことに注意してください。返されるデータ型を宣言するだけで済みます
コメントによると。受信クリック数まで、このクリック以上をカウントする情報の数'
ストアド プロシージャまたはストアド関数の機能情報を説明するには、コメントを使用します。フォーマット コメント '説明文字列' を使用します
begin
begin を使用して処理モジュールを定義します
declare total_news int;
変数を宣言します format 変数名データ型を宣言します [デフォルト デフォルト値]
hits_num int を宣言します デフォルト 0;
変数を宣言します format 変数を宣言します名前のデータ型 [デフォルトのデフォルト値]
if hits>=0 then
set hits_num=hits;
set を使用して変数に値を割り当てます
select count(id) into total_news from db_news where db_news.hits>hits_num;
sqlステートメントは、変数に値を割り当てます
else
set total_news=0;
end if;
上記は、形式が if-else-end if または if –else if-else-end であることに注意してください。 if
セミコロン (;) に注意してください
return total_news;
ストレージ関数によって返される値を返すには return を使用します。値は 1 つだけであることに注意してください。
end;
//
delimiter ;
上記の概念的知識を要約すると、次のようになります。
1. ストアド関数とストアド プロシージャのパラメータの違いは何ですか。
2. ストアドルーチンでの mysql のデフォルトの終了記号を変更する方法。
3. ストアドルーチンに機能情報を記述する方法。
4. 変数を宣言して設定します。
5. begin-end ステートメントブロック。
6. 条件判定 if-else if-else-end if または if-else-end if または if-end if


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444773.html技術記事 PHP チュートリアル ストアド ルーチン、ストアド プロシージャの入門チュートリアル ストアド ルーチンとは、指定された...
を呼び出すことによって、データベース チュートリアル サーバーに保存されている一連の SQL ステートメントです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles