我正在嘗試爲MySQL數據庫創建一個存儲過程。存儲過程應該可以獲取每位員工在特定物品午餐時花費的金額。我遇到的問題是我無法讓存儲過程返回任何值。當我將它作爲SQL查詢運行並輸入日期時,我的變量應該是正常的。我正在使用MySQL。這裏是我的存儲過程:MySQL存儲過程變量
DELIMITER $$
CREATE PROCEDURE `class`.`PricePaid`(varBeginningDate DATE)
BEGIN
SELECT Item_Desc, SUM(Item_Price) AS 'Total Price Paid'
FROM Lunch, Item, Lunch_item
WHERE Lunch.Lunch_id = Lunch_item.Lunch_id
AND Item.Item_Number = Lunch_item.Item_Number
AND DATEDIFF(Lunch.Lunch_Date, "'" + varBeginningDate + "'") > 0
GROUP BY Item.Item_Desc;
END
我的PHP代碼中調用該函數是這個
<?php
include("Functions.php");
if(isset($_POST['SubmitPricePaid'])){
$strSQL = "CALL `class`.`PricePaid`('{$_POST[$PricePaidDate]}');";
}
?>
<?php if(isset($_POST['SubmitPricePaid'])){
print_report($strSQL, $db);
}
?>
可能無法解決你的問題,但我記得幾周前看到一個類似的帖子,就是那個'DEL IMITER $$',最後一行代碼包含'$$',它不在代碼中。可能是問題。 –
我想你需要在這兩行中使用'END $$'和'DELIMITER;' –
如果將$$添加到存儲過程中,我收到以下錯誤消息:您的SQL語法中有錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第12行'$$'附近使用正確的語法編輯:我添加了'DELIMITER;'並且它給了我同樣的錯誤 – Matt