inout param和pdo不工作的SQL过程

时间:2016-01-18 20:02:08

标签: mysql pdo

我有一个INOUT参数的程序。当我从phpMyAdmin中调用该过程时,它工作得很好,但是后来我没有看到INOUT参数的值,就像我只使用OUT时那样。

现在,我尝试使用PDO从php调用此过程:

$query = "CALL setSessionId(:user_id, :session_id);";
$statement = $this->database->prepare($query);

$statement->bindValue(':user_id', $user_id);
$statement->bindParam(':session_id', $session_id, PDO::PARAM_INPUT_OUTPUT);

$session_id = "test";
echo "<p>before: $session_id</p>";
$statement->execute();

echo "<p>afterwards: $session_id</p>";

PDOStatement::bindParam documentation表示在execute使用PDO::PARAM_INPUT_OUTPUT后,您无需取消任何内容,但session_id最终不在数据库中,并且不是'{1}}执行后更新。

如果我将session_id更改为仅IN参数并添加一个额外的OUT参数,我会在execute之后获取它。

0 个答案:

没有答案