0

Hi,
I am using this SP, am getting both the result when using mysql workbench.

CREATE PROCEDURE SP(IN _start INT,IN _end INT,INOUT _count INT)
BEGIN

   SET _count = (SELECT COUNT(*) FROM tbl);

   SET @qry = CONCAT('select * from tbl limit ', _start, ',', _end);

   PREPARE stmt FROM @qry;
   EXECUTE stmt;
   DEALLOCATE PREPARE stmt;

END

But when using with PDO am returning this error

$c=0; 
$stmt = $this->_dbc->getConnection()->prepare("CALL SP(0,10,:count)"); 
    $stmt->bindParam(":count",$c,PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT,0); 
    $stmt->execute(); 
    return $c; 
PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 3 for routine db22.SP is not a variable or NEW pseudo-variable in BEFORE trigger 

But on changing

$this->_dbc->getConnection()->prepare("CALL SP(0,10,[B]:count[/B])");

to

$this->_dbc->getConnection()->prepare("CALL SP(0,10,@count)");

am not returning any error, but always getting the count as 0.

1.Whats the difference between :count and @count ?
2.How to get exact count via pdo ?

Edited by mike_2000_17: Fixed formatting

2
Contributors
1
Reply
9
Views
5 Years
Discussion Span
Last Post by LastMitch
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.