Heim >Backend-Entwicklung >PHP-Tutorial >Können Sie Tabellennamen in vorbereitete PHP-PDO-Anweisungen binden?
PHP PDO – Tabellennamen binden
Ist es in PHP Data Object (PDO) möglich, einen Tabellennamen an eine vorbereitete Anweisung zu binden? ?
Antwort:
Nein, es ist nicht möglich, a zu binden Tabellenname im PDO.
Das Binden eines Tabellennamens birgt Sicherheitsrisiken, da Benutzer dadurch auf jede Tabelle in der Datenbank zugreifen können. Es wird empfohlen, Tabellennamen auf die Whitelist zu setzen, um sicherzustellen, dass nur autorisierte Tabellen abgefragt werden können.
Alternativer Ansatz:
Um sicher auf Tabellenmetadaten zuzugreifen, sollten Sie die Erstellung einer übergeordneten Klasse für Sie in Betracht ziehen Tabellenklassen, wie zum Beispiel:
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(); } }
Erstellen Sie dann für jede Tabelle eine bestimmte Klasse, wie zum Beispiel als:
class MyTable extends AbstractTable { private $table = 'my_table'; }
Mit diesem Ansatz können Sie sicher auf Tabellenmetadaten zugreifen:
$pdo = new PDO(...); $table = new MyTable($pdo); $fields = $table->describe();
Das obige ist der detaillierte Inhalt vonKönnen Sie Tabellennamen in vorbereitete PHP-PDO-Anweisungen binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!