コードをコピーします コードは次のとおりです:
//たとえば、呼び出されるストアドプロシージャは gxtj(a,b) です
$db=new mysqli("localhost","ssss", "aaaaa","bbbb" );
mysqli_query($db,"SET NAMES utf8");
$result=$db->query("call gxtj($year,$jd)"); mysql のストアド プロシージャ名 [color =gray][/color]
while( $row = $result->fetch_array(MYSQLI_ASSOC)) //返された結果セットからの行のフェッチを完了します
{
while ($key= key($row)){ //フィールド名を順番に取得
$value=current($row) //フィールドの値を順番に取得
}
}
例 1: パラメーターのないストアド プロシージャ
コードをコピーします コードは次のとおりです:
$conn = mysql_connect('localhost','root','root') or die ("データ接続エラー!!! ");
mysql_select_db('test',$conn);
$sql = "
プロシージャ myproce() を作成
begin
ユーザー (ID、ユーザー名、性別) の値 (NULL、's'、' 0') ;
end
";
mysql_query($sql);//myproce ストアド プロシージャを作成します
$sql = "call test.myproce();";
mysql_query($sql);//myproce のストアド プロシージャを呼び出すと、新しいレコードがデータベースに追加されます。
例 2: パラメーターが渡されたストアド プロシージャ
コードをコピー コードは次のとおりです:
$sql = "
create プロシージャ myproce2(in core int)
begin
ifスコア >= 60 then
select ' pass';
else
select 'no';
end if;
end;
";
mysql_query($sql);//myproce2 ストアド プロシージャを作成します
$sql = "call test.myproce2(70) ;" ;
mysql_query($sql);//myproce2 のストアド プロシージャを呼び出しますが、効果は確認できません。結果は cmd で確認できます。
例 3: パラメーターを渡すストアド プロシージャ
コードをコピー コードは次のとおりです:
$sql = "
createproceduremyproce3(out core int)
begin
set core=100;
end ;
" ;
mysql_query($sql);//myproce3のストアドプロシージャを作成する
$sql = "call test.myproce3(@score);";
mysql_query($sql);//myproce3のストアドプロシージャを呼び出す
$result = mysql_query('select @score;');
$array = mysql_fetch_array($result);
echo '
';print_r($array);
例 4: パラメーターを渡す inout ストアド プロシージャ
コードをコピー コードは次のとおりです:
$sql = "
createprocedure myproce4(inout sexflag int)
begin
SELECT * FROM user WHERE sex = sexflag;
end;
";
mysql_query($sql);//myproce4 ストアド プロシージャを作成します
$sql = "set @sexflag = 1";
mysql_query($sql);//性別パラメータを 1 に設定します
$sql = "call test.myproce4(@sexflag);";
mysql_query($sql);//myproce4 のストアド プロシージャを呼び出し、cmd での効果を確認します
例 5: 変数を使用したストアド プロシージャ
コードをコピーします コードは次のとおりです:
$sql = "
createproceduremyproce5(in a int, in b int)
begin
declare s int default 0;
set s=a+b;
select s;
end;
";
mysql_query($sql);//myproce5 ストアド プロシージャを作成します
$sql = "call test.myproce5(4,6);" ;
mysql_query($sql);//myproce5 のストアド プロシージャを呼び出し、cmd での効果を確認します
例 6: case 構文
コードをコピー コードは次のとおりです:
$sql = "
プロシージャmyproce6を作成(スコアint)
begin
ケーススコア
when 60 then select 'pass';
when 80 then select ' Good' ;
100 の場合は 'Excellent' を選択します;
else は '不明なスコア' を選択します;
end case;
end;
";
mysql_query($sql);//myproce6 ストアド プロシージャを作成します
$sql = "call test .myproce6(100);";
mysql_query($sql);//myproce6 のストアド プロシージャを呼び出し、cmd での効果を確認します
例 7: ループステートメント
コードをコピー コードは次のとおりです:
$sql = "
createproceduremyproce7()
begin
declare i int default 0;
declare j int default 0;
while i<10 do
set j= j+i;
set i=i+1;
end while;
select j;
end;
";
mysql_query($sql);//myproce7 ストアド プロシージャを作成します
$sql = "call test .myproce7 ();";
mysql_query($sql);//myproce7 のストアド プロシージャを呼び出し、cmd での効果を確認します
例 8: ステートメントの繰り返し
コードをコピー コードは次のとおりです:
$sql = "
createproceduremyproce8()
begin
declare i intdefault0;
declarej intdefault0;
repeat
set j=j +i;
set i=i+1;
until j>=10
endrepeat;
select j;
end;
";
mysql_query($sql);//myproce8 ストアド プロシージャを作成します
$sql = " call test .myproce8();";
mysql_query($sql);//myproce8 のストアド プロシージャを呼び出し、cmd での効果を確認します
例 9: ループステートメント
コードをコピー コードは次のとおりです:
$sql = "
createproceduremyproce9()
begin
declare i int default 0;
declare s int default 0;
loop_label:loop
set s=s+i;
set i=i+1;
if i>=5 then
leave loop_label;
end if;
end ループ;
select
";
mysql_query($sql);//myproce9 のストアド プロシージャを作成します
$sql = "call test.myproce9();";
mysql_query($sql);//myproce9 のストアド プロシージャを呼び出し、cmd での効果を確認します
例 10: ストアド プロシージャを削除する
mysql_query("dropprocedureifexistsmyproce");//testのストアドプロシージャを削除する
例10:ストアドプロシージャ内のカーソル
まとめ。
http://www.bkjia.com/PHPjc/326478.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/326478.html技術記事次のようにコードをコピーします。 //たとえば、呼び出されるストアド プロシージャは gxtj(a,b) $db=new mysqli("localhost","ssss","aaaaa","bbbb"); db,"SET NAMES utf8"); $result=$db-query("ca...
)