程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP調用MYSQL存儲過程 不報錯的解決方法

PHP調用MYSQL存儲過程 不報錯的解決方法

編輯:關於PHP編程

 

前兩天跟同事一起開發一套庫存管理系統,我負責寫頁面程序,同事負責寫存儲過程,寫程序時一切進展很順利,直到開發完成,我用PHP調用他的存儲過程時問題發生了。

 

以後開發時需要注意以下幾點:

 

 

 

1、連接MYSQL數據庫時要注意後兩個參數

 

 

 

define('CLIENT_MULTI_RESULTS', 131072); //定義常量

 

$conn=mysql_connect("localhost","root","123456",1,CLIENT_MULTI_RESULTS);

 

$db=mysql_select_db("db01",$conn);

 

 

 

2、調用存儲過程方法

 

 

 

很簡單共有兩種方法

 

(1)無返回值

 

mysql_query("call nj_keep_accounts_sp($id)",$conn);  //  存儲過程名稱: nj_keep_accounts_sp 參數:$id

 

(2)有返回值

 

 

 

$id=$_GET["id"];

$r=mysql_query("call nj_keep_accounts_sp($id)",$conn);

 while($rs=@mysql_fetch_array($r)){

      echo($rs["t_id"]);

 }

 

 

 

3、如果調試的時不報錯,經常執行不穩定,一會好用一會不好用請注意

 

 

 

我在測試的時候發生過這種事情,發現代碼本身無錯誤,存儲過程在MYSQL裡執行也沒有出錯,問題發生在哪呢?

 

經過兩天的測試最終發現,寫存儲過程的時候調試過程中在執行開始、中間、結尾部份都加了測試返回值。問題就發生在這裡。

 

我把沒用的返回值(如:select @a)類似這種代碼全注釋之後才發現以前的問題全部解決了,程序也好用了。

 

摘自 newsera

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved