MySQL程序的参数类型?
|
我正在为基于Web的应用程序编写一些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 ;
当使用非整数参数调用时,它将崩溃。并且没有反馈:当从php调用时,我什么也没得到,当我在phpMyAdmin中尝试它时,我将被发送回首页。
所以我的问题是:如何使它更安全?有没有办法在这些过程中检查变量的类型?
没有找到相关结果
已邀请:
1 个回复
锯康
那应该涵盖大多数(如果不是全部)可能性。