當前位置:首頁 » 存儲配置 » mysql存儲過程call

mysql存儲過程call

發布時間: 2022-05-17 16:21:07

㈠ mysql 存儲過程怎麼調用

php調用mysql存儲過程和函數的方法
存儲過程和函數是MySql5.0剛剛引入的。關於這方面的操作在PHP裡面沒有直接的支持。但是由於Mysql PHP API的設計,使得我們可以在以前的PHP版本中的mysql php api中支持存儲過程和函數的調用。

在php中調用存儲過程和函數。

1。調用存儲過程的方法。

a。如果存儲過程有 IN/INOUT參數,聲明一個變數,輸入參數給存儲過程,該變數是一對,

一個php變數(也可以不必,只是沒有php變數時,沒有辦法進行動態輸入),一個Mysql

變數。

b。如果存儲過程有OUT變數,聲明一個Mysql變數。

mysql變數的聲明比較特殊,必須讓mysql伺服器知道此變數的存在,其實也就是執行一條mysql語句。

入set @mysqlvar=$phpvar ;

c。使用mysql_query()/mysql_db_query()執行mysql 變數聲明語句。

mysql_query("set @mysqlvar=$pbpvar");

這樣,在mysql伺服器裡面就有一個變數,@mysqlar。如果是IN參數,那麼其值可以由phpar傳入。

d。 如果是存儲過程。

1。執行 call procere()語句。

也就是mysql_query("call proceer([var1]...)");

2. 如果有返回值,執行select @ar,返回執行結果。

mysql_query("select @var)"

接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。

如果時函數。 直接執行 select function() 就可以了。
$host="localhost";
$user="root";
$password="11212";
$db="samp_db";
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql");
mysql_select_db($db,$dblink)
or die("can't select samp_db");
$res=mysql_query("set @a=$password",$dblink);
$res=mysql_query("call aa(@a)",$dblink);
$res=mysql_query("select @a",$dblink);
$row=mysql_fetch_row($res);
echo $row[0];

㈡ mysql存儲過程 用事件觸發 和call調用有沖突嗎

1、使用MySQL中的存儲過程+事件解決。
存儲過程邏輯為:
1)創建一個新表operationlog_temp,各欄位同operationlog相同;
2)將表operationlog更名為operationlog_yyyy-mm-dd;
3)將表operationlog_temp更名為operationlog
事件邏輯為:
1)每個3個月定時調用一次存儲過程bakOpLog
2、定義存儲過程bakOpLog:
【注】
開始事件功能(MySQL必須先開啟事件功能,才能使用事件),用如下SQL語句
SHOW VARIABLES LIKE 'event_scheler';
SET GLOBAL event_scheler = ON;

㈢ mysql如何呼叫存儲過程

存儲過程是一組為了完成特定功能的SQL語句集,經過編譯後存儲在資料庫中。
createorreplaceprocere

aa(anumber)

is

begin

insertintobvalues(a);

end;
執行時候調用:execaa(3)或者callaa(4);

㈣ 怎麼在mysql中查詢已建立的存儲過程

1、首先先創建一個存儲過程,代碼如圖,存儲過程主要的功能是為表JingYan插入新的數據。

㈤ mysql如何創建存儲過程

1 用mysql客戶端登入
2 選擇資料庫
mysql>use test
3 查詢當前資料庫有哪些存儲過程
mysql>show procere status where Db='test'
4 創建一個簡單的存儲過程
mysql>create procere hi() select 'hello';
5 存儲過程創建完畢,看怎麼調用它
mysql>call hi();
顯示結果 mysql> call hi();
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
6 一個簡單的儲存過程就成功了

㈥ mysql存儲過程的基本用法有哪些

mysql存儲過程的基本用法有哪些
在外部程序訪問資料庫時(例如 PHP),要組織很多 SQL 語句。

特別是業務邏輯復雜的時候,一大堆的 SQL 和條件夾雜在 PHP 代碼中,讓人不寒而慄。現在有了 MySQL 存儲過程,業務邏輯可以封裝存儲過程中,這樣不僅容易維護,而且執行效率也高。

一、MySQL 創建存儲過程

"pr_add" 是個簡單的 MySQL 存儲過程,這個MySQL 存儲過程有兩個 int 類型的輸入參數 "a"、"b",返回這兩個參數的和。
復制代碼 代碼如下:
drop procere if exists pr_add;

計算兩個數之和
復制代碼 代碼如下:
create procere pr_add
(
a int,
b int
)
begin
declare c int;
if a is null then
set a = 0;
end if;
if b is null then
set b = 0;
end if;
set c = a + b;
select c as sum;
/*
return c;
不能在 MySQL 存儲過程中使用。return 只能出現在函數中。

*/
end;

二、調用 MySQL 存儲過程
復制代碼 代碼如下:
call pr_add(10, 20);

執行 MySQL 存儲過程,存儲過程參數為 MySQL 用戶變數。
復制代碼 代碼如下:
set @a = 10;
set @b = 20;
call pr_add(@a, @b);

三、MySQL 存儲過程特點

創建 MySQL 存儲過程的簡單語法為:
復制代碼 代碼如下:
create procere 存儲過程名字()
(
[in|out|inout] 參數 datatype
)
begin
MySQL 語句;
end;

MySQL 存儲過程參數如果不顯式指定"in"、"out"、"inout",則默認為"in"。習慣上,對於是"in" 的參數,我們都不會顯式指定。

1. MySQL 存儲過程名字後面的"()"是必須的,即使沒有一個參數,也需要"()"

2. MySQL 存儲過程參數,不能在參數名稱前加"@",如:"@a int"。下面的創建存儲過程語法在 MySQL 中是錯誤的(在 SQL Server 中是正確的)。 MySQL 存儲過程中的變數,不需要在變數名字前加"@",雖然 MySQL 客戶端用戶變數要加個"@"。
復制代碼 代碼如下:
create procere pr_add
(
@a int, -- 錯誤
b int -- 正確
)

3. MySQL 存儲過程的參數不能指定默認值。

4. MySQL 存儲過程不需要在 procere body 前面加 "as"。而 SQL Server 存儲過程必須加 "as" 關鍵字。
復制代碼 代碼如下:
create procere pr_add
(
a int,
b int
)
as -- 錯誤,MySQL 不需要 "as"
begin
mysql statement ...;
end;

5. 如果 MySQL 存儲過程中包含多條 MySQL 語句,則需要 begin end 關鍵字。
復制代碼 代碼如下:
create procere pr_add
(
a int,
b int
)
begin
mysql statement 1 ...;
mysql statement 2 ...;
end;

6. MySQL 存儲過程中的每條語句的末尾,都要加上分號 ";"
復制代碼 代碼如下:
...
declare c int;
if a is null then
set a = 0;
end if;
...
end;

7. MySQL 存儲過程中的注釋。
復制代碼 代碼如下:
/*
這是個
多行 MySQL 注釋。
*/
declare c int; -- 這是單行 MySQL 注釋 (注意 -- 後至少要有一個空格)
if a is null then # 這也是個單行 MySQL 注釋
set a = 0;
end if;

㈦ mysql怎麼調用存儲過程

使用call語句來調用,直接call 存儲過程名稱(參數)即可。

㈧ mysql怎麼調試存儲過程

mysql調試存儲過程具體方法:

在你的存儲過程中加入如下語句:
SELECT 變數1,變數2;

然後用mysql自帶的cmd程序進入mysql> 下。
call 你的存儲過程名(輸入參數1,@輸出參數);(注:這里幫助下新同學,如果你的存儲過程有輸出變數,那麼在這里只需要加 @ 然後跟任意變數名即可);
即可發現你的變數值被列印到了cmd下

㈨ mysql資料庫存儲過程怎麼寫

創建存儲過程
mysql> delimiter $ -- delimiter $是設置 $為命令終止符號,代替默認的分號,因為分號有其他用處.
mysql> create procere sp_test(IN pi_id int, OUT po_name varchar(10))
-> begin
-> select * from test.tb_test;
-> select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id;
-> end
-> $
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ; -- 恢復分號作為分隔終止符號

5.調用存儲過程
mysql> set @po_name='';
Query OK, 0 rows affected (0.00 sec)
mysql> call sp_test(1,@po_name);

㈩ mysql中的存儲過程怎麼使用

存儲過程(Stored Procere)是一組為了完成特定功能的SQL語句集功能是將常用或復雜的工作,預先用SQL語句寫好並用一個指定名稱存儲起來, 以後需要資料庫提供與已定義好的存儲過程的功能相同的服務時,只需調用 call 存儲過程名字, 即可自動完成命令。存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,可由應用程序通過一個調用來執行,而且允許用戶聲明變數 。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用。

熱點內容
安卓手機如何打開qrs 發布:2024-05-07 03:18:31 瀏覽:465
c語言給數組排序 發布:2024-05-07 03:18:30 瀏覽:75
職工個人所得稅登錄密碼是多少 發布:2024-05-07 03:14:22 瀏覽:706
編譯程序組成部分 發布:2024-05-07 03:02:07 瀏覽:96
伺服器怎麼做雙機 發布:2024-05-07 02:37:25 瀏覽:36
ftp剪切 發布:2024-05-07 02:37:14 瀏覽:138
手機存儲英文 發布:2024-05-07 02:34:31 瀏覽:640
php鎖變數 發布:2024-05-07 02:09:02 瀏覽:49
股票漲的演算法 發布:2024-05-07 01:59:22 瀏覽:23
安卓手機如何關閉英文拼寫 發布:2024-05-07 01:45:46 瀏覽:297