お世話になります。何卒よろしくお願い致します。

以下のサイトを参考にphpからMySQLに設定した(ルーチンタブ内に作成した)ストアドプロシージャを起動させようとしておりますが、エラーが出ないものの、起動もできません。

MySQLのストアドプロシージャを呼び出す

以下はphpの記述と、MySQLの設定です。どこに問題があるかご指摘、ご教示等頂けませんでしょうか。

*php側では、db接続に関する記述($connect_db、$connect_user、$connect_passwd)を異なるものにするとエラーが出ます。また、$stmt = $dbh->prepareをprepaなどと変更するとエラーになりますが、CALL get_image(:code)自体をCALL get_ima(:code)と変更してもエラーが出ないことを考えると、データベースに接続し、$stmtを実行しようとしているのは確かだけれど、ストアドプロシージャの呼び出し、'CALL get_image(:code)'をしていない、あるいは、ができていないと考えられます。

*MySQLのストアドプロシージャのwhere句のcodeにテーブルtbl_productsに存在するproduct_id、例えば12を設定し、mySql上で”実行する”を押すと期待通りの結果になります。即ち設定したストアドプロシージャの内容、テーブル上でt1.main_image に t1.main_image_xを挿入致します。

データベース:MySQL5.0.77
PHP:5.0.22
WEBサーバ:apache2

phpの設定

try {
  $connect_db = "mysql:dbname=xxxxxxx;host=localhost";
  $connect_user = 'xxxxxxx';
  $connect_passwd = 'xxxxxxx';

  //データベース接続
  $dbh = new PDO(
        $connect_db,
        $connect_user,
        $connect_passwd,
        array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
  );

  $stmt = $dbh->prepare('CALL get_image(:code)');
  $code = '12';// 最終的にはシステム的に変数を代入する設定にする
  $stmt->bindParam(':code', $code);
  // ストアドプロシージャをコールします
  $stmt->execute();

 while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
 echo $row['t1.main_image'];
  }
} catch(PDOException $e){
   var_dump($e->getMessage());
}
}
// 切断
$dbh = null;

MySQL ストアドプロシージャの設定

DELIMITER $$
CREATE DEFINER=`xxxxxxx`@`%` PROCEDURE `get_image(IN code varchar(2))`()
    NO SQL
BEGIN

UPDATE tbl_products t1 SET t1.main_image = t1.main_image_x WHERE t1.product_id = code;

End$$
DELIMITER ;