2011-09-24 88 views

回答

3

在查询中传递动态构建的表名是相当危险的。但是,如果您的应用程序需要这么多,则必须清理数据。由于PDO无法帮助您,所以您必须自己拨打mysql_real_escape_string。你也必须用反引号把表名称作为`table_name`。所以,准备查询为:

'SELECT * FROM `' . mysql_real_escape_string($database) . '` WHERE id = :id 

一个注意:mysql_real_escape_string需要数据库已建立的连接。

编辑:但是,当我想到它,可能是最好匹配$database变量与您现有的表。

+0

是的,我从固定列表中选择它们,但这是一个很好的观点。 –