表名是可变的,但可以肯定的是只允许 SELECT 并且排除某些表(即用户、日志)。我正在制作一个报告表单,用户可以在其中输入 sql 查询来制作模板报告。
SELECT 'field1' As 'foo', 'field2' as 'bar'.. 'fieldn'
FROM 'table1',..'tablen'
JOIN ... ON ...
WHERE CONDITION
虽然我认为我可以在现有表的 html 选择列表中包含表名。
还要让用户reporter_appname@localhost 仅对除Users 和Log 之外的所有表具有SELECT 访问权限?在那种情况下,我不需要对查询进行正则表达式检查?
(这将在 PHP 中)
(理想情况下,我只想要一个文本区域,管理员可以在其中键入他们的查询,然后我的报告功能将获取输出并很好地呈现它等等。)