查詢:
可以在PHP 中綁定?
問題:
嘗試使用bindValue() 綁定表名會導致錯誤。當嘗試透過使用者輸入動態設定表名時,就會出現此問題。
解:
不,無法直接綁定表名。
這是出於安全考慮,因為它可能允許使用者存取資料庫中的任意表。相反,建議:
使用抽象層的安全實作:
為以下物件建立安全類別存取表數據,請依照下列步驟操作:
abstract class AbstractTable { private $table; private $pdo; public function __construct(PDO $pdo) { $this->pdo = $pdo; } public function describe() { return $this->pdo->query("DESCRIBE `" . $this->table . "`")->fetchAll(); } } class SomeTable extends AbstractTable { private $table = 'sometable'; }
現在,使用該類別安全地存取表格資料:
$pdo = new PDO(...); $table = new SomeTable($pdo); $fields = $table->describe();
以上是PHP PDO 中可以綁定表名嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!