我已经创建了这样的商店程序
delimiter //
create procedure tom()
begin
select name from table where id = 1
end
//
我正在像这样调用这个商店程序
if($connection){
echo "connected";
$res = R::exec('call tom');
var_dump($res);
}
查询正在执行但我无法获取该值
例如:此预期输出为tom
(表中的名称,其中id = 1)
但我得到int(1)
这意味着查询正在执行,但我无法获取值,该怎么做?
答案 0 :(得分:1)
试试这个......
<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->multi_query("CALL YOURPROCEDURE()");
?>
答案 1 :(得分:1)
我发现R::exec
只是执行查询。你必须使用它来获得多维数组。这是这个的链接。 redbean orm queries
R::getAll( 'call tom' );
答案 2 :(得分:1)
以下是有关如何在PHP中编写和执行存储过程的详细讨论。
试试this。它可能对你有帮助。
答案 3 :(得分:1)
从PHP调用存储过程
$dbms = 'mysql';
//Replace the below connection parameters to fit your environment
$host = '192.168.1.8'; // give host IP
$db = 'myDB'; // give your db name here
$user = 'myUser'; // give the username here to connect
$pass = 'myPass'; // give the password for the user
$dsn = "$dbms:host=$host;dbname=$db";
$cn=new PDO($dsn, $user, $pass);
$res=$cn->exec('call tom');
print_r($res);
答案 4 :(得分:0)
这很简单。我想你很期待知道如何使用readbeanphp和amp;来调用商店程序。检索存储过程的结果。
它很简单。试试这个$response = R::getCol("CALL procesedure() ");
print_r($response);
它将返回结果。