Heim > Backend-Entwicklung > PHP-Tutorial > Können Sie Tabellennamen in vorbereitete PHP-PDO-Anweisungen binden?

Können Sie Tabellennamen in vorbereitete PHP-PDO-Anweisungen binden?

Susan Sarandon
Freigeben: 2024-11-27 10:43:14
Original
447 Leute haben es durchsucht

Can You Bind Table Names in PHP PDO Prepared Statements?

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();
    }
}
Nach dem Login kopieren

Erstellen Sie dann für jede Tabelle eine bestimmte Klasse, wie zum Beispiel als:

class MyTable extends AbstractTable {
    private $table = 'my_table';
}
Nach dem Login kopieren

Mit diesem Ansatz können Sie sicher auf Tabellenmetadaten zugreifen:

$pdo = new PDO(...);
$table = new MyTable($pdo);
$fields = $table->describe();
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage