我有一个web应用程序,可以使用表单中的简单文本区从数据库运行查询。我有一个问题:php检查mysql查询是否会运行
我需要检查查询内存消耗之前它运行(所以它不会崩溃我的服务器)。
有没有一种方法使用PHP或MySQL来做到这一点?
例如,我有3个表:
新闻(idNews,创建,idMedio,状态) NewsAreaMain(idNewsAreaMain,idNews,idAreaMain) AreaMain(idAreaMain)
并且有人尝试了实际上使服务器崩溃的以下查询:
SELECT DISTINCT News.*
FROM NewsAreaMain, News
WHERE
(
(
NewsAreaMain.idNews=News.idNews
AND News.idNews IN
(
SELECT DISTINCT News.idNews
FROM News, NewsAreaMain
WHERE NewsAreaMain.idNews=News.idNews
AND NewsAreaMain.idAreaMain="1"
)
)
AND idMedio="5"
OR (idMedio="6")
)
AND News.state=1
ORDER BY created DESC
LIMIT 0, 20;
不是我所知道的。确保你相信你的用户修改你的数据库。 – 2012-02-19 18:25:05
你想允许执行任意的用户输入查询?这听起来不是一个好主意。 – 2012-02-19 18:25:16
这听起来有点可怕,你是否以任何方式清理和限制用户查询......或允许他们输入自由文本sql? – okyanet 2012-02-19 18:25:55