2012-05-27 60 views
2

可能重複:
Can't return a result set in the given context存儲過程不與PHP調用工作

我試圖通過PHP來調用一個基本的存儲過程。但是mysql會產生一個像「PROCEDURE softland.getAllProducts無法返回給定上下文中的結果集」的錯誤。

存儲過程

DELIMITER // 
CREATE PROCEDURE GetAllProducts() 
BEGIN 
SELECT * FROM products; 
END // 
DELIMITER ; 

PHP代碼

<?php 
$con=mysql_connect("localhost","root",""); 
mysql_select_db("softland",$con); 
$id = 1; 
$result = mysql_query("call getAllProducts()"); 
echo $result; 

if ($result === FALSE) { 
die(mysql_error()); 
} 
while($row=mysql_fetch_array($result)){ 
    echo "<br>".$row['name']; 
} 
echo "Succees"; 
?> 
+1

什麼錯誤? – David

+2

Plz檢查問題更新..錯誤是「PROCEDURE softland.getAllProducts無法返回給定上下文中的結果集」 – Sunil

回答

0

試試這個,

Function GetProducts($out) 
{ 
    $query.= "CREATE PROCEDURE GetAllProducts() "; 
    $query.= "BEGIN"; 
    $query.= "SELECT * FROM products;"; 
    $query.= "END"; 
    return $query; 
} 

在把這個代碼,

$result = mysql_query(GetProducts()); 

希望工程!

+1

函數GetProducts($ out)中的$ out是什麼? – Sunil

+1

再次沒有相同的結果:( – Sunil

+1

我在這裏發佈了幾個問題,但沒有得到答案,我真的很鬱悶:( – Sunil

1

那麼,這答案是直接從PHP頁面上mysql_connect

$這個 - > CON =的mysql_connect($這個 - > H,$這個 - > U,$這個 - > P,假,65536);

告訴你的mysql客戶端使用多語句支持(見MySQL客戶端常量:http://php.net/manual/en/mysql.constants.php#mysql.client-flags

+1

感謝您的時間,所以請清楚我該如何解決這個問題? – Sunil

+1

我有用$ con = mysql_connect(「localhost」,「root」,「」,false,65536)更新了代碼,但仍顯示相同的錯誤消息 – Sunil