PHP PDO - 绑定表名称
在 PHP 数据对象 (PDO) 中,是否可以将表名称绑定到准备好的数据对象上语句?
答案:
不,不可能在 PDO 中绑定表名。
绑定表名会带来安全风险,因为它允许用户访问数据库中的任何表。建议将表名列入白名单,以确保只能查询授权的表。
替代方法:
要安全地访问表元数据,请考虑为您的表创建一个父类表类,如:
abstract class AbstractTable { private $table; private $db; public function __construct(PDO $pdo) { $this->db = $pdo; } public function describe() { return $this->db->query("DESCRIBE `$this->table`")->fetchAll(); } }
然后,为每个表创建一个特定的类,例如as:
class MyTable extends AbstractTable { private $table = 'my_table'; }
使用这种方法,您可以安全地访问表元数据:
$pdo = new PDO(...); $table = new MyTable($pdo); $fields = $table->describe();
以上是可以在 PHP PDO 准备语句中绑定表名吗?的详细内容。更多信息请关注PHP中文网其他相关文章!