mysql里的操作似乎是这样的: $exec="select * from contents where id=".$_GET['id']; $exec="update contents set content='".$_POST['post_contents']."' where id=".$_POST['id']; $result=mysql_query($exec);
你写的这个是PHP中的吧,我想将sql server的存储过程修改成mysql的存储过程。
动态游标,根据动态语句声明游标。这个 mysql 不支持。只能用其它方法实现,如先用动态语句创建视图,再根据视图声明游标。如, set @tabname = 'test.t1'; set @sql = concat('create view v as select * from ', @tabname); prepare stmt from @sql; execute stmt; deallocate prepare stmt;declare c cursor for select * from v; ... ...
大哥能相信说明哈么?我对SQL server 和mysql都是略懂。是不是先要将视图写在存储过程中,然后在来写游标,
mysql的方法: mysql>prepare stmt1 from concat('DECLARE Cur_Rule CURSOR FOR ',sqlstring); mysql>execute stmt1;
不知道 #13 楼的语句在哪一个 mysql 版本上可以执行?
刚刚测试了哈,确实不行。 我是这样按照帮助文档中这样进行修改的,没有语法错误了,也不知道对不对,可能字符串连接还是有问题。 set @stm='DECLARE Cur_Rule CURSOR FOR + SqlString'; PREPARE stmt FROM @stm; execute stmt; 不过都很谢谢你们。感谢了!!
MYSQL里是啥样就不清楚了.
$exec="select * from contents where id=".$_GET['id'];
$exec="update contents set content='".$_POST['post_contents']."' where id=".$_POST['id'];
$result=mysql_query($exec);
set @tabname = 'test.t1';
set @sql = concat('create view v as select * from ', @tabname);
prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;declare c cursor for select * from v;
... ...
mysql>prepare stmt1 from concat('DECLARE Cur_Rule CURSOR FOR ',sqlstring);
mysql>execute stmt1;
不知道 #13 楼的语句在哪一个 mysql 版本上可以执行?
我是这样按照帮助文档中这样进行修改的,没有语法错误了,也不知道对不对,可能字符串连接还是有问题。
set @stm='DECLARE Cur_Rule CURSOR FOR + SqlString';
PREPARE stmt FROM @stm;
execute stmt;
不过都很谢谢你们。感谢了!!