Richard Davey wrote:
Hi,
I'm calling a MySQL Stored Procedure via PDO (PHP 5.2.3)
$stmt = $dbh->prepare('CALL forum_post(?, ?, ?, ?, ?, @status, @thread_id,
@message_id)');
At the moment in order to get the values of status, thread_id and
message_id I need to issue a second query:
$sql = "SELECT @status AS status, @thread_id AS thread_id, @message_id AS
message_id";
and then foreach my way through it:
foreach ($dbh->query($sql) as $row)
{
$status = $row['status'];
$thread_id = $row['thread_id'];
$message_id = $row['message_id'];
}
Which seems a bit insane.. is there no way to do a bindValue at the
same time as I do my bindParams?
Now I write this I really can't remember why I am even putting that
second query into a foreach loop, even so it's still a step I'd like
to remove entirely if possible?
Cheers,
Rich
From: http://www.php.net/manual/en/ref.pdo.php
Example 1716. Calling a stored procedure with an input/output parameter
<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);
// call the stored procedure
$stmt->execute();
print "procedure returned $value\n";
?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php