我正在使用
PHP / PDO中的预处理语句.基本查询工作正常,将值传递给WHERE子句:
$stmt = $db->prepare( 'SELECT title FROM episode WHERE id=:id' ); $stmt->bindParam( ':id',$id,PDO::PARAM_INT ); $id = 5; $stmt->execute();
但是我有一种情况需要为字段名称传递变量.此查询(具有适当的绑定)工作正常:
SELECT :field FROM episode WHERE id=:id
这个给出了一个错误:
SELECT title FROM :field WHERE id=:id
这个没有给出错误,但没有返回任何行:
SELECT title FROM episode WHERE :field=:id
那么,准备好的陈述中哪些东西应该有效呢?我可以’参数化’字段名称,表名等吗?
您不能参数化IN子句中的表名,列名或任何内容(感谢
pointing out the
IN
clause restriction的c0r0ner).