PHP - MYSQL存储过程输出参数

时间:2012-10-31 10:03:07

标签: php mysql mysqli

我有一个mysql存储过程,它带有3个参数--2 In和1 out 我使用mysqli

从php调用此过程

该过程将返回1行,并在调用时使用以下代码

    $result = $mysqli->query("call get_hybrid_auth_session('".$userId."','".$loginSystem."', @hybridAuthSession)");
    $result = $mysqli->query( 'SELECT @hybridAuthSession' );
    $row = $result->fetch_object();

当我在$ row属性上执行var_dump时,我得到以下文本

object(stdClass)#16 (1) { ["@hybridAuthSession"]=> string(287) ".a:3:{s:40:"hauth_session.twitter.token.access_token";s:56:"s:48:"23801232-fkv05uitVRobpItrFFUn15I4Ejl0w80pr7GOH0A";";s:47:"hauth_session.twitter.token.access_token_secret";s:51:"s:43:"VKsFaQWnP8n9OcZK3MDCgRHQY0roLTFVXesBuONCYJo";";s:34:"hauth_session.twitter.is_logged_in";s:4:"i:1;";}." } 

当我在$ row-> {“@ hybridAuthSession”}属性上执行var_dump时,我得到以下值

string(287) ".a:3:{s:40:"hauth_session.twitter.token.access_token";s:56:"s:48:"23801232-fkv05uitVRobpItrFFUn15I4Ejl0w80pr7GOH0A";";s:47:"hauth_session.twitter.token.access_token_secret";s:51:"s:43:"VKsFaQWnP8n9OcZK3MDCgRHQY0roLTFVXesBuONCYJo";";s:34:"hauth_session.twitter.is_logged_in";s:4:"i:1;";}."

有没有办法在开始时没有收到字符串(287)值? hybridAuthSession Out参数在我的存储过程中定义为Text

1 个答案:

答案 0 :(得分:0)

Var转储在将文本输出到屏幕时添加了其他信息,这是其预期的行为。 经过一些测试,代码按预期工作