Rumah >pembangunan bahagian belakang >tutorial php >Bolehkah Anda Mengikat Nama Jadual dalam Penyata PHP PDO Disediakan?

Bolehkah Anda Mengikat Nama Jadual dalam Penyata PHP PDO Disediakan?

Susan Sarandon
Susan Sarandonasal
2024-11-27 10:43:14501semak imbas

Can You Bind Table Names in PHP PDO Prepared Statements?

PHP PDO - Mengikat Nama Jadual

Dalam PHP Data Object (PDO), adakah mungkin untuk mengikat nama jadual kepada pernyataan yang disediakan ?

Jawapan:

Tidak, tidak mungkin untuk mengikat nama jadual dalam PDO.

Mengikat nama jadual memperkenalkan risiko keselamatan kerana ia membolehkan pengguna mengakses mana-mana jadual dalam pangkalan data. Adalah disyorkan untuk menyenarai putih nama jadual untuk memastikan hanya jadual yang dibenarkan boleh ditanya.

Pendekatan Alternatif:

Untuk mengakses metadata jadual dengan selamat, pertimbangkan untuk membuat kelas induk untuk anda kelas jadual, seperti:

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();
    }
}

Kemudian, cipta kelas khusus untuk setiap jadual, seperti sebagai:

class MyTable extends AbstractTable {
    private $table = 'my_table';
}

Menggunakan pendekatan ini, anda boleh mengakses metadata jadual dengan selamat:

$pdo = new PDO(...);
$table = new MyTable($pdo);
$fields = $table->describe();

Atas ialah kandungan terperinci Bolehkah Anda Mengikat Nama Jadual dalam Penyata PHP PDO Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn