$stmt = $db->prepare("CALL pro_test(?,@?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $return_value, PDO::PARAM_STR, 4000); // 插入一行 $name = '成都市'; $stmt->execute (); print_r($return_value); 调用存储过程时,数据库可能返回多个结果集
依次是:基本的 select 的结果,存储过程1的结果,存储过程2的结果 ....
你的 SQL 指令这是 CALL pro_test(?,@?) 没有 select 所以只能位于第二个结果集
如果写作 select CALL pro_test(?,@?) 就位于第一结果集了
当然环境十多变的,你也确实不能准确的知道结果集会摆在哪里
于是就需要循环读取
do { $rows = $stmt->fetchAll(PDO::FETCH_NUM); if ($rows) { print_r($rows); } } while ($stmt->nextRowset()); 调用存储过程时,数据库可能返回多个结果集
依次是:基本的 select 的结果,存储过程1的结果,存储过程2的结果 ....
你的 SQL 指令这是 CALL pro_test(?,@?) 没有 select 所以只能位于第二个结果集
如果写作 select CALL pro_test(?,@?) 就位于第一结果集了
当然环境十多变的,你也确实不能准确的知道结果集会摆在哪里
于是就需要循环读取
do { $rows = $stmt->fetchAll(PDO::FETCH_NUM); if ($rows) { print_r($rows); } } while ($stmt->nextRowset()); 你在数据库管理器中都要
SET @n = -1;CALL pro_test("啊是打算",@n);select @n; 你在数据库管理器中都要
SET @n = -1;CALL pro_test("啊是打算",@n);select @n; 你在数据库管理器中都要
SET @n = -1;CALL pro_test("啊是打算",@n);select @n;$stmt = $db->prepare("CALL pro_test(?,@sp_result);"); $stmt->bindParam(1, $name);; $stmt->execute (); $outputArray = $db->query("select @sp_result")->fetch(PDO::FETCH_ASSOC);
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号