3
我正在爲基於Web的應用程序編寫一些MySQL程序,而令我感到震驚的是,根本沒有參數的類型檢查。參數在MySQL程序中的類型?
舉例來說,如果我有以下幾點:
CREATE PROCEDURE foo(n CHAR(4))
我可以與任何我想要調用它,它會接受它,只需要四個第一字符。但是,如果我想要做這樣的事情:
use base;
DELIMITER $$
DROP PROCEDURE IF EXISTS open $$
CREATE PROCEDURE open(n INT)
BEGIN
SELECT * FROM prod_charts LIMIT n;
END $$
DELIMITER ;
它只會在用非int參數調用時崩潰。並沒有任何反饋:當從PHP調用時,我什麼也沒有得到,當我在phpMyAdmin中嘗試時,我被髮回到主頁。
所以我的問題是:我怎樣才能讓它更安全一點?有沒有辦法在這些程序中檢查變量的類型?