2013-11-15 12 views
0

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); 
     } 
?> 
+1

당신의 문제를 해결할 수는 없지만 몇 주 전에 유사한 게시물을 본 기억이 있습니다. 'DEL IMITER $$'이고 코드의 마지막 줄에는'$$'이 포함되어 있으며 코드에 없습니다. 문제가 될 수 있습니다. –

+0

두 줄에'END $$'와'DELIMITER;를 사용해야한다고 생각합니다 –

+0

저장 프로 시저에 $$를 추가하면 다음과 같은 오류 메시지가 나타납니다 : SQL 구문에 오류가 있습니다. 라인 12에서 '$$'근처에서 사용할 올바른 구문에 대한 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. EDIT : 나는 DELIMITER;를 추가하고 나에게 같은 에러를주었습니다. – Matt

답변

0

입니다 :

<?php 

include("Functions.php"); 

if(isset($_POST['SubmitPricePaid'])){ 
$strSQL = "CALL `class`.`PricePaid`('{$_POST[$PricePaidDate]}');"; 
var_dump($strSQL); 
var_dump($db); 
exit(); //EDITED 
print_report($strSQL, $db); 
} 

?> 

하는 당신 위해서 var_dump의 결과를 게시 할 수 .. .i 그 결과를 볼 필요가

+0

Item_Desc의 열 표제가 \t 총 가격 지불 및 데이터가 없습니다. 덤프에 대한 특정 어딘가를 찾고 싶지 않은 한 – Matt

+0

요청 된대로 var 덤프가 있습니다 : string (29) "CALL'class'.PricePaid' ('');" resource (1) 유형 (mysql 링크) – Matt

+0

var 덤프를 추가했습니다. – Matt