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 구문에 오류가 있습니다. 라인 12에서 '$$'근처에서 사용할 올바른 구문에 대한 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. EDIT : 나는 DELIMITER;를 추가하고 나에게 같은 에러를주었습니다. – Matt