Php 可以使用PDO将占位符放在查询的select部分吗?
我计划使用PDO的Php 可以使用PDO将占位符放在查询的select部分吗?,php,mysql,pdo,Php,Mysql,Pdo,我计划使用PDO的prepare()和execute()机制来防止SQL注入攻击 SQL中的占位符通常位于条件部分 比如说 从年龄>所在的成员中选择姓名、年龄>?性别='f' 但是,是否可以在“选择零件”中放置占位符 选择姓名、年龄、?来自年龄>的成员?性别='f' 我知道我不能把列名放在那个里,但我能把常数放在那个里吗?像 从年龄>所在的成员中选择姓名、年龄、'foo'?和性别='f' 谢谢。没有。PDO无法清理列或表名 如果必须使用动态表名,最安全的处理方法是不检查它们是否确实存在于表中,并
prepare()
和execute()
机制来防止SQL注入攻击
SQL中的占位符通常位于条件部分
比如说
从年龄>所在的成员中选择姓名、年龄>?性别='f'代码>
但是,是否可以在“选择零件”中放置占位符
选择姓名、年龄、?来自年龄>的成员?性别='f'代码>
我知道我不能把列名放在那个里,但我能把常数放在那个里吗?像
从年龄>所在的成员中选择姓名、年龄、'foo'?和性别='f'代码>
谢谢。没有。PDO无法清理列或表名
如果必须使用动态表名,最安全的处理方法是不检查它们是否确实存在于表中,并以正常方式将它们插入查询中
伪代码:
$fieldname = make_sure_this_field_really_exists($_GET["fieldname"]);
$PDO->prepare("select name, age, `$fieldname` from members where age > ? and gender = 'f';" ... );
我想你问是因为你试过了,但收到了一条错误信息。你也应该提到这一点。