涉及到資料庫不用預存程序肯定是不行的 下面簡單寫2個預存程序 接著前面的資料庫
1 不帶輸出參數的 (添加使用者)
drop procedure if exists proc_add;
create procedure proc_add(uid varchar(50),pwd varchar(20),name varchar(20))
begin
insert into T_user (U_uid,U_pwd,U_name) values(uid,pwd,name);
end;
call proc_add('abcd','123','使用者1');
select * from T_user;
注意幾點:
變數不需要加@
預存程序名字後面的“()”是必須的,即使沒有一個參數,也需要“()”
不用加as關鍵字
預存程序中包含多條 MySQL 陳述式,則需要 begin end 關鍵字。
預存程序中的每條語句的末尾,都要加上分號 “;”
不能在 MySQL 預存程序中使用 “return” 關鍵字。
2 帶輸出參數的預存程序 (使用者登陸)
drop procedure if exists proc_login;
create procedure proc_login(
uid varchar(50),
pwd varchar(20),
out back int -- 0失敗 1成功
)
begin
select U_uid from t_user where U_uid=uid and U_pwd=pwd;
set @rowcount=found_rows();
if (@rowcount>0) then
set back=1;
else
set back=0;
end if;
end;
call proc_login('admin','123',@b);
select @b as bbb;
返回select操作的行數用found_rows()函數;insert、update、delete等操作影響的行數用row_count()函數。