如何使用存儲過程在php中進行報告?根據我搜索的內容,存儲過程使用mysqli而不是mysql。所以我很困惑,如果這是可能的或不。你能舉一個例子來說明如何實現這個嗎?使用存儲過程在PHP中進行報告
-1
A
回答
2
如果你想調用MySQL中的存儲過程,mysql
和mysqli
都可以這樣做。儘管如此,無論如何,我都會推薦mysqli
,因爲它只是更好(因此i
;'改進';我認爲)。
你會調用存儲過程像你調用PHP中的任何其他SQL語句:
mysqli_query($link, "CALL Procedure('$strVar', $intVar, etc.)");
雖然我的例子使用mysqli_query
,mysql_query
將工作一樣好。
從PHP內部創建存儲過程是不可能的,因爲雖然PHP的mysqli
對象具有multi_query()
函數,但它只允許;
作爲分隔符。而這是很糟糕的,因爲你會需要一個內您的存儲過程,但PHP將執行它們作爲單獨的查詢。
MySQL中的存儲過程作爲一個例子:
DELIMITER $$
DROP PROCEDURE IF EXISTS `Procedure`$$
CREATE PROCEDURE `Procedure` (
IN `userid` INT
)
IF EXISTS (SELECT 1
FROM `users`
WHERE `user_id` = `userid`)
THEN
SELECT `user_name`
FROM `users`
WHERE `user_id` = `userid`;
ELSE
SELECT `user_name` = 'No such user';
END IF;
END $$
通知你如何需要(標準定界符是;
),因爲它是在存儲過程中的使用(因爲一個程序是重命名定界符許多查詢並且必須由這樣的分隔符分隔)。 $$
是分隔符通常推薦的重命名。
如果我要從PHP內部運行此SQL,使用multi_query()
,它會將我的查詢拆分爲;
,從而導致五個查詢,這些查詢都會有語法錯誤(因爲它們是碎片)。
因此,要創建存儲過程,請爲此目的編寫一個.sql腳本。然後從終端運行腳本:如果您想了解更多關於MySQL存儲過程
$ mysql --user="$USER" --password="$PASSWORD" $DB < $FILE
,我建議你在網絡上搜索,有很多優秀的教程。但與常規SQL語句相比,您不需要任何特殊的魔法就可以從PHP調用它們。
相關問題
- 1. SQL - 使用報告服務進行報告的存儲過程
- 2. 在報告中執行存儲過程
- 3. MVC 4 - 使用SqlParameters進行報告和存儲過程
- 4. 存儲過程報告
- 5. SSRS報告調用存儲過程
- 6. 我應該在SQL Reporting Services中使用存儲過程報告
- 7. 使用存儲過程在Access 2007中以PDF形式報告
- 8. 使用存儲過程在C#中生成RDLC報告
- 9. 在報表生成器(SSRS)中使用存儲過程進行報表設計?
- 10. 使用相同存儲過程的SSRS中的多個報告
- 11. 存儲過程的每日報告
- 12. 配置動態存儲過程報告
- 13. Crystal報告和存儲過程
- 14. 使用VS2008報告嚮導和存儲過程時的空報告
- 15. 在Windows應用程序C中使用存儲過程創建RDLC報告#
- 16. 在Dreamweaver中使用php存儲過程
- 17. 每次運行報告時如何執行存儲過程?
- 18. System.IO.FileNotFoundException當執行CLR存儲過程運行Cognos報告
- 19. 來自Oracle DB的SSRS報告 - 使用存儲過程
- 20. 使用存儲過程/ SQL字符串的XAF報告
- 21. 如何使用存儲過程創建rdlc報告?
- 22. 使用SQL Server存儲過程構建報告
- 23. 在PHP中運行SQL存儲過程
- 24. 在php中存儲過程
- 25. SQL Server存儲過程在SSRS報告生成器中計時
- 26. 將參數傳遞給存儲過程以進行水晶報告?
- 27. 如何從我的存儲過程運行每週報告?
- 28. SSRS報告無法運行存儲過程
- 29. 只爲一個報告執行一部分存儲過程
- 30. 如何使用共享變量使用存儲過程中的水晶報告
你的意思是「報告」究竟是什麼意思? – 2013-03-09 12:03:21
像vb6中的報告... – 2013-03-09 12:03:55
你能澄清那些是什麼嗎?另外,如何將存儲過程作爲一項要求發揮作用? – 2013-03-09 12:05:23