php PDO 調用帶有out參數的mysql預存程序執行個體

來源:互聯網
上載者:User

最近使用PHP資料庫訪問最新的一種技術 POD,不封裝,代碼也寫得很少。 下面我將貼出My Code。

代碼部分:

<?php $dsn = "mysql:host=localhost;dbname=mysqldatabasedemo"; $db = new PDO($dsn,'root','123456@#',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET   NAMES'GBK';"));  $someInParameter1='hellow';  $stmt = $db->prepare("CALL outputProcudure(:addName,@outASD)");  $stmt->bindParam(':addName', $someInParameter1);   if($stmt->execute())   {      $rs=$db->query('select @outASD')->fetchAll();      $dataArray=$rs[0];      echo("<script type='text/javascript'> alert('"+$dataArray[0]+"');</script>");   }   else   {    echo("<script type='text/javascript'> alert('插入失敗');</script>");   }?>



mysql預存程序:




PHP_PDO 調用mysql 帶返回參數的預存程序

    DROP PROCEDURE IF EXISTS pro_test;            create procedure pro_test(in val VARCHAR(50) ,out rtn int)      begin      declare err INT default 0;      -- 如果出現異常,會自動處理並rollback      declare exit handler for  sqlexception ROLLBACK ;
-- 啟動事務  start transaction;
insert into test_user values(NULL,1,'啊是大三的');  -- set err = @@IDENTITY; -- =   擷取上一次插入的自增ID;  set err =last_insert_id(); -- 擷取上一次插入的自增ID  insert into test_user VALUES(NULL,val,err);    -- 運行沒有異常,提交事務  commit;  -- 設定傳回值為1  set rtn=1;  end;
$name = '成都市';                    $stmt = $db->prepare("CALL pro_test(?,@sp_result);");          $stmt->bindParam(1, $name);          $stmt->execute ();          $outputArray = $db->query("select @sp_result")->fetch(PDO::FETCH_ASSOC);
<span style="font-family: Arial, Helvetica, sans-serif;">               </span><span style="font-family: Arial, Helvetica, sans-serif;">print_r($outputArray["@sp_result"]);</span>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.