正文
PHP数据库创建存储过程 php怎么写数据库
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
怎么写mysql存储过程,并用php调用它?
实现原理
首先,需要知道怎么写mysql存储过程,了解mysq存储过程语言,
其次,使用mysql工具创建存储过程。
最后,通过mysql_query()函数执行mysql变量的设置和mysql存储过程及返回值。
具体代码如下:
mysql存储过程代码
create procedure pro_name(user_id int)
begin
.........
end
2. PHP代码
$host = "localhost";
$user = "root";
$password = "232412";
$db = "user_db";
$dblink = mysql_connect($host,$user,$password)or die("can't connect to mysql");
mysql_select_db($db,$dblink)or die("can't select user_db");
$user_id = 1;
$res = mysql_query("set @a=$user_id",$dblink);
$res = mysql_query("call pro_name(@a)",$dblink);
PHP下如何创建MYSQL存储过程
直接上代码:
mysql_connect("localhost","user","pwd");
mysql_select_db('testdata') or die (mysql_error());
$sql = "create procedure tb_neaten (in rec int,in pa varchar(15),in qy decimal(10,2),in ar varchar(6))
begin
update test1 set qty=qty-qy where recordnum=rec;
insert into test2 set bname=pa,area=ar,qty=qy,date=date_format(now(),'%Y%m%d'),time=date_format(now(),'%Y%m%d');
end;";
mysql_query($sql) or die (mysql_error());
若是存储过程里含有捕获select结果PHP数据库创建存储过程的语句时PHP数据库创建存储过程,需在mysql_connect时调整参数
mysql_connect("localhost","user","password",1,131072)
执行时PHP数据库创建存储过程,直接运行
mysql_query(tb_neaten(va1,va2,va3,va4));
php调用mysql存储过程的问题
存储过程结果的获取和SELECT是一样的:
$row=mysql_fetch_array($res);
PHP如何调用MYSQL的存储过程?
php相当于执行mysql的终端,即模拟mysql的客户端,所以符号sql标准的语句都是可以执行的。
存储是由数据库本身建立起来的,与php没有关系,
具体查看mysql的命令
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
php调用返回多结果的mysql存储过程
直接处理存储过程的输出参数即可。
调用存储过程的方法。
a。如果存储过程有 IN/INOUT参数PHP数据库创建存储过程,声明一个变量PHP数据库创建存储过程,输入参数给存储过程PHP数据库创建存储过程,该变量是一对,
一个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语句一样PHP数据库创建存储过程了。可以通过mydql_fetch_row()等函数获得结果。
如果时函数。 直接执行 select function() 就可以了。
传出参数的存储过程:
$sql = "
create procedure myproce3(out score int)
begin
set score=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 'pre';print_r($array);
php可以直接对数据库进行操作为什么还要用存储过程呢
嘿嘿1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。3.存储过程可以重复使用,可减少数据库开发人员的工作量4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权有一点需要注意的是,一些网上盛传的所谓的存储过程要比sql语句执行更快的说法,实际上是个误解,并没有根据,包括微软内部的人也不认可这一点,所以不能作为正式的优点,希望大家能够认识到这一点。
关于PHP数据库创建存储过程和php怎么写数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。