有关php和mysql存储过程

heiyilvzhe 2010-08-05 03:37:43
PHP与MySQL存储过程 实例一:无参的存储过程

$conn = MySQL_connect('localhost','root','root') or die ("数据连接错误!!!");
MySQL_select_db('test',$conn);
$sql = " create procedure myproce() begin
INSERT INTO user (id, username, sex)
VALUES (NULL, 's', '0'); end; ";
MySQL_query($sql);

创建一个myproce的存储过程

$sql = "call test.myproce();";

MySQL_query($sql);

调用myproce的存储过程,则数据库中将增加一条新记录



参照这个例子,在php中写了类似的代码,但是,结果是,没有任何的insert行为发生,为什么呢?
也没有任何的报错。
insert语句没有错,数据库存在,表存在,晕晕了~
是忘记做什么了咩???
...全文
49 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
heiyilvzhe 2010-08-05
啊,知道哪里错了。自己不仔细,谢谢楼上的大大~~结贴~
回复
xuzuning 2010-08-05
你执行
SELECT specific_name, body FROM mysql.proc

看一下你的存储过程是否真的存在
回复
heiyilvzhe 2010-08-05
php 5.3.2
mysql 5.1.47-community

呃,按理来说应该没有问题哇。。
谢谢楼上,偶再仔细对下哪里出问题了~
回复
xuzuning 2010-08-05
是我有点想当然了
很久没有接触 mysql 了,对 mysql 的存储过程也不甚了解

刚才测试了一下楼主的代码,结果是:
一切正常,数据如愿插入

我使用的是:
php 5.2.6
mysql 5.1.47-community


回复
heiyilvzhe 2010-08-05
CunningBoy的意思是否是说在PHP中无法像例子那样创建存储过程呢?
回复
CunningBoy 2010-08-05
在数据库中先创建储存过程。
回复
heiyilvzhe 2010-08-05
$sql = " create procedure myproce() begin
INSERT INTO user (id, username, sex)
VALUES (NULL, 's', '0'); end; ";

那这句应该怎么写呢?? 基本上创建存储过程的语句都是有一个以上的分号的咯~
回复
xuzuning 2010-08-05
mysql_query 一次只能执行一句 sql 指令
而你的 $sql 是两句
回复
heiyilvzhe 2010-08-05
这个是复制的例子,语句里面都是用的小写的咯,应该没有语法错误,也没有任何的报错。
回复
CunningBoy 2010-08-05
请使用
mysql_connect
mysql_select_db
mysql_query
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告