ホームページ >バックエンド開発 >PHPチュートリアル >PHP がエラーなしで MYSQL ストアド プロシージャを呼び出す solution_PHP チュートリアル

PHP がエラーなしで MYSQL ストアド プロシージャを呼び出す solution_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:47:10889ブラウズ

2日前、私は同僚と在庫管理システムを開発しました。私はページプログラムを書く責任を負い、同僚はストアドプロシージャを書く責任を負いました。 PHP を使用してストアド プロシージャを呼び出したところ、問題が発生しました。

今後開発する場合は次の点に注意する必要があります:

1. MYSQL データベースに接続するときは、最後の 2 つのパラメーターに注意してください

define('CLIENT_MULTI_RESULTS', 131072); //定数を定義します

$conn=mysql_connect("localhost","root","123456",1,CLIENT_MULTI_RESULTS);

$db=mysql_select_db("db01",$conn);

2. ストアド プロシージャ メソッドを呼び出します

方法はとても簡単です

(1)戻り値なし

mysql_query("call nj_keep_accounts_sp($id)",$conn); // ストアドプロシージャ名: nj_keep_accounts_sp パラメータ: $id

(2)戻り値がある

$id=$_GET["id"];

$r=mysql_query("call nj_keep_accounts_sp($id)",$conn);

while($rs=@mysql_fetch_array($r)){

echo($rs["t_id"]);

}

3. デバッグ中にエラーが報告されなかった場合、実行は一時的には正常に動作することもありますが、しばらくは動作しない場合があることに注意してください。

これはテスト中に発生しました。コード自体にはエラーがなく、MYSQL でストアド プロシージャが実行されたときにもエラーが発生しませんでした。問題はどこで発生しましたか?

2 日間のテストの後、ストアド プロシージャを作成する際、デバッグ プロセス中に実行の開始、中間、終了時にテストの戻り値が追加されていることが最終的に判明しました。ここで問題が発生します。

役に立たない戻り値 (select @a など) と同様のコードをすべてコメントした後、以前の問題がすべて解決され、プログラムが使いやすくなったことがわかりました。

newseraより抜粋

http://www.bkjia.com/PHPjc/478528.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478528.html技術記事 2日前、私は同僚と在庫管理システムを開発しました。私はページプログラムの作成を担当し、同僚はストアドプロシージャの作成を担当しました。開発が完了するまではすべて順調に進みました。 PHP を調整します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。