Rumah > pembangunan bahagian belakang > tutorial php > Bolehkah anda Mengikat Nama Jadual dalam PHP PDO?

Bolehkah anda Mengikat Nama Jadual dalam PHP PDO?

DDD
Lepaskan: 2024-11-14 10:36:02
asal
1031 orang telah melayarinya

Can you Bind a Table Name in PHP PDO?

Ikat Nama Jadual dalam PHP PDO

Pertanyaan:

Bolehkah anda mengikat nama jadual dalam PHP PDO?

Isu:

Percubaan untuk mengikat nama jadual menggunakan bindValue() mengakibatkan ralat. Isu timbul apabila cuba menetapkan nama jadual secara dinamik melalui input pengguna.

Penyelesaian:

Tidak, tidak mungkin untuk mengikat nama jadual secara langsung.

Ini disebabkan oleh kebimbangan keselamatan, kerana ia boleh membenarkan pengguna mengakses jadual sewenang-wenangnya dalam pangkalan data. Sebaliknya, adalah disyorkan untuk:

  • Kod keras nama jadual dalam pertanyaan SQL.
  • Gunakan lapisan abstraksi untuk mengendalikan nama jadual dengan selamat.

Pelaksanaan Selamat dengan Lapisan Abstraksi:

Untuk mencipta kelas selamat untuk mengakses data jadual, ikut langkah berikut:

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';
}
Salin selepas log masuk

Sekarang, gunakan kelas untuk mengakses data jadual dengan selamat:

$pdo = new PDO(...);
$table = new SomeTable($pdo);
$fields = $table->describe();
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan