2012-07-20 67 views
0

我試圖調用一個簡單的過程,它返回名稱到PHP頁面。在PHP中調用輸出變量的簡單過程

我得到空記錄集,而這樣做

程序

DROP PROCEDURE IF EXISTS prSample1; 
CREATE PROCEDURE prSample1(OUT Name VARCHAR(255)) 
BEGIN 
SET Name = 'Mugil'; 
SELECT Name; 
END; 

PHP程序調用

mysql_connect('localhost', 'root', ''); 
    mysql_select_db('dbName'); 

    $strSQL = "CALL prSample1(@Name);"; 
    $Result = mysql_query($strSQL); 

    $strSQL = "SELECT @Name"; 
    $Result = mysql_query($strSQL); 

    while($Row = mysql_fetch_array($Result)) 
     $Name = $Row[0]; 

    print $Name; 

我沒有得到這個名字的時候我運行這個PHP碼。

謝謝來回回覆

+1

請不要使用'mysql_ *'功能,它們不再被維護,並且社區已經開始[棄用過程](http://goo.gl/KJveJ)。相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你想學習,[這裏是一個很好的PDO相關教程](http://goo.gl/vFWnC)。 – vascowhite 2012-07-20 10:31:25

+0

(i)現在不支持mysql使用'mysqli'。 (ii)由於調用不返回結果集,爲什麼不只是'... mysqli_query(「CALL prSample1(@Name); SELECT @Name」)...'等等 – TerryE 2012-07-20 10:32:32

+0

謝謝非常感謝所有回覆 – aprilleocean 2012-07-20 10:38:24

回答

0
$strSQL = "CALL prSample1(@Name);"; 

應該是:

$strSQL = "CALL prSample1(@Name)"; 

記有 「;」 :)

+0

這不是問題如何謝謝你的答覆 – aprilleocean 2012-07-20 10:26:23