PHP: get return values from MySQL procedure

This is simple example how to get returned values from MySQL procedure in PHP using PDO object:

Intro:
`my_sql_procedure` - simple procedure with one input string param  and 3 output params

Code:

$CFG = new stdClass();
//Connection to MySQL DB - replace with yours
$CFG->dbhost = 'localhost';
$CFG->dbname = 'mydb';
$CFG->dbuser = 'root';
$CFG->dbpass = '123' ;
 $pdo = null;
 $stmt = null;
        try {
            
            $hostname   = $CFG->dbhost;
            $dbname     = $CFG->dbname;
            $username   = $CFG->dbuser;
            $pw         = $CFG->dbpass;
            $pdo = new PDO ("mysql:host=$hostname;dbname=$dbname","$username","$pw");
        } catch (PDOException $e) {
            echo "Failed to get DB handle: " . $e->getMessage() . "\n";
            exit;
        }
        $pdo->query("SET NAMES 'utf8'"); 

      
        // my_sql_procedure - name of MySQL procedure
        $sql = "CALL `my_sql_procedure`( 'test' ,@return_param1, @return_param2, @return_param3);";
        $stmt = $pdo->prepare($sql);
        $stmt->execute();

        $outputArray = $pdo->query("select @return_param1, @return_param2, @return_param3;")->fetch(PDO::FETCH_ASSOC);

        var_dump($outputArray);
   
        unset($stmt);
        unset($pdo);

No comments:

Post a Comment