php调用mysql存储过程游标

<?php
$dbtype = 'mysql';
$host = 'localhost';
$dbname = 'test';
$dsn = "$dbtype:host=$host;dbname=$dbname";
$user = 'root';
$password = 'root';
try{
$pdo = new PDO($dsn, $user, $password);
} catch(PDOException $e) {
echo $e->getMessage();
}
$procy = "
create procedure proc1()--定义存储过程名字
begin --开始
declare mynum int default 0; --定义变量指定类型默认值
declare done int default 0;
declare cur1 cursor for select num1 from test.test1; --定义游标
declare continue handler for not found set done = 1; --定义游标内循环结束标志
open cur1; --打开游标
fetch cur1 into mynum; --打开游标并指向数据第一行
while done != 1 do --while循环
insert into test.test2(numc) value(mynum); --执行任意语句
fetch cur1 into mynum; --指向下一条数据
end while; --结束while
close cur1; --关闭游标
end;--结束存储过程
";
$a = $pdo->query($procy);//存储编译存储过程(存储至mysql->proc表中)
$res1 = $pdo->query('call proc1();');//调用存储过程
$res2 = $pdo->query('select * from test2');
var_dump($res2->fetchAll(PDO::FETCH_ASSOC));
上一篇:第一次制作和使用图标字体-IcoMoon


下一篇:SIGPIPE导致cronttab和shell脚本等工作异常