MySQL存储过程编程,mysql存储函数和存储过程

http://www.itjxue.com  2023-01-04 15:43  来源:未知  点击次数: 

写一个Mysql存储过程

CREATE PROCEDURE `xxxx`( )

BEGIN

#设置事务

DECLARE t_error INTEGER DEFAULT 0;

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;

#开启事务

START TRANSACTION;

#插入数据

INSERT INTO 表2(字段21,字段22,字段23)

SELECT 字段11,字段12,字段13 FROM 表1 where xxxx ;

#删除数据

delete 表1 where xxx;

#以上两步操作出现任何失误都将回滚

IF t_error = 1 THEN

ROLLBACK;

ELSE

COMMIT;

END IF;

end;

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 procedure()语句。

也就是mysql_query("call proceduer([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中的存储过程怎么使用

存储过程(Stored

Procedure)是一组为了完成特定功能的SQL语句集功能是将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来,

以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用

call

存储过程名字,

即可自动完成命令。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,可由应用程序通过一个调用来执行,而且允许用户声明变量

。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。

mysql存储过程

start是mysql的关键词,不能直接用于过程中的参数,需要加一对··符号,修正后的存储过程如下:

CREATE?PROCEDURE?sp_pagination(currentpage?INT,?numperpage?INT)

??BEGIN

????DECLARE?`START`?INT;

????SET?`START`?=?(currentpage?-?1)?*?numperpage?-?1;

????SELECT?*?FROM???employees?LIMIT?`START`,?numperpage;

END

mysql写一个存储过程

这个SQL存储过程改写成MYSQL如下:

CREATE PROCEDURE proc_login

(IN v_name VARCHAR(16),

IN v_psd VARCHAR(8),

OUT v_out INT)

BEGIN

DECLARE v_pass VARCHAR(8);

DECLARE v_num INT;

SELECT COUNT(*) INTO v_num FROM USER WHERE name=v_name;

IF v_num=0

SELECT pass INTO v_pass FROM user WHERE name=v_name;

IF v_pass=v_psd

SET v_out=9;

ELSE

SET v_out=1;

END IF;

ELSE

SET v_out=1;

END IF;

END;

希望能帮到你。

(责任编辑:IT教学网)

更多

推荐金山WPS文章