如何在没有结果集的情况下通过PHP mysqli访问MySQL OUT变量

如何在没有结果集的情况下通过PHP mysqli访问MySQL OUT变量,php,mysql,mysqli,Php,Mysql,Mysqli,是否可以从通过mysqli调用的SP访问OUT变量,而不通过SELECT以某种方式返回该变量?我看得很清楚,并尝试了代码,但它总是需要在SP内部或之后调用一个结果集才能工作 考虑以下代码: SQL: PHP: 因为没有以表格形式返回的结果,这很公平。那么,我是否正确地假设,虽然在mysql中,OUT是优雅的,但如果没有结果集的帮助,它在mysqli上下文中是无用的,在这个上下文中,OUT是多余的?如果不是,我想知道怎么做 谢谢 James你试过mysqli手册中的SP页面了吗?我现在试过了P()

是否可以从通过mysqli调用的SP访问
OUT
变量,而不通过
SELECT
以某种方式返回该变量?我看得很清楚,并尝试了代码,但它总是需要在SP内部或之后调用一个结果集才能工作

考虑以下代码:

SQL:

PHP:

因为没有以表格形式返回的结果,这很公平。那么,我是否正确地假设,虽然在mysql中,
OUT
是优雅的,但如果没有结果集的帮助,它在mysqli上下文中是无用的,在这个上下文中,
OUT
是多余的?如果不是,我想知道怎么做

谢谢


James

你试过mysqli手册中的SP页面了吗?我现在试过了
P()
在所有情况下,要么没有结果,要么使用
SELECT
创建结果集,要么使用后续的
SELECT
和会话变量恢复
OUT
。是否有这样一个例子,该过程有一个
OUT
,但没有
SELECT
来创建结果集,并且该值在PHP中可用,就像在MySQL中一样?我的印象是,手册页面相当清楚地指出,mysqli不支持OUT/inout变量,这是雪上加霜,即使是PDO_Mysql也不支持,不过对于其他驱动程序,它支持“使用会话变量访问INOUT/OUT参数的值”。很好,我为走了这么长的路而道歉,并感谢指针。很高兴知道什么是正确的。你试过mysqli手册中的SP页了吗?我现在试过了
P()
在所有情况下,要么没有结果,要么使用
SELECT
创建结果集,要么使用后续的
SELECT
和会话变量恢复
OUT
。是否有这样一个例子,该过程有一个
OUT
,但没有
SELECT
来创建结果集,并且该值在PHP中可用,就像在MySQL中一样?我的印象是,手册页面相当清楚地指出,mysqli不支持OUT/inout变量,这是雪上加霜,即使是PDO_Mysql也不支持,不过对于其他驱动程序,它支持“使用会话变量访问INOUT/OUT参数的值”。很好,我为走了这么长的路而道歉,并感谢指针。很高兴知道什么是对的。
DELIMITER $

# DROP PROCEDURE IF EXISTS outVar$

CREATE PROCEDURE outVar(OUT myVar TINYINT(1))
BEGIN

    SET myVar = 1;

END$

DELIMITER ;

CALL outVar(@myVar);

SELECT @myVar;
 <?php

    $Conn = new mysqli("127.0.0.1", "root", "123456789", "test");

    $RResult = $Conn->query("CALL outVar(@myVar);");

    print_r($RResult->fetch_assoc());
?>
Fatal error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\phpTest.php on line 7