Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Pembolehubah PHP Menyebabkan Ralat Apabila Digunakan dalam Klausa VALUES MySQL?

Mengapa Pembolehubah PHP Menyebabkan Ralat Apabila Digunakan dalam Klausa VALUES MySQL?

Patricia Arquette
Lepaskan: 2024-12-21 15:17:10
asal
423 orang telah melayarinya

Why Do PHP Variables Cause Errors When Used in MySQL's VALUES Clause?

Cara Memasukkan Pembolehubah PHP di dalam Penyata MySQL

Masalah:

Dalam PHP, menggunakan pembolehubah di dalam Pernyataan MySQL yang disertakan dalam VALUES menyebabkan isu.

Soalan:

Mengapa memasukkan pembolehubah dalam VALUES mengakibatkan ralat?

Jawapan:

Terdapat dua pendekatan berbeza untuk memasukkan pembolehubah PHP dalam pernyataan MySQL dengan betul:

  1. Gunakan Penyata Disediakan:

    Untuk pembolehubah yang mewakili literal data SQL (rentetan, nombor), pernyataan yang disediakan mesti digunakan. Ini melibatkan:

    • Menentukan ruang letak dalam pernyataan SQL
    • Menyediakan pertanyaan
    • Mengikat pembolehubah kepada ruang letak
    • Melaksanakan pertanyaan

    Contoh (mysqli):

    $type = 'testing';
    $sql = "INSERT INTO contents (type, reporter, description) VALUES ('whatever', ?, ?)";
    $mysqli->execute_query($sql, [$type, $reporter, $description]);
    Salin selepas log masuk
  2. Gunakan Penapisan Senarai Putih:

    Untuk sebarang pembolehubah lain yang mewakili bahagian pertanyaan (mis., kata kunci , pengecam), ia mesti ditapis melalui senarai putih, memastikan hanya nilai yang dibenarkan digunakan. Contoh (menyemak pesanan mengikut):

    $orderby = $_GET['orderby'] ?: 'name';
    $allowed = ['name', 'price', 'qty'];
    $key = array_search($orderby, $allowed);
    if ($key === false) throw new InvalidArgumentException("Invalid field name");
    Salin selepas log masuk

Kesimpulan:

Mematuhi prinsip ini melindungi daripada suntikan SQL dan memastikan pelaksanaan pertanyaan yang betul apabila pembolehubah PHP terlibat. Penyataan yang disediakan hendaklah digunakan untuk literal data, manakala penyenaraian putih memastikan hanya nilai yang dibenarkan dimasukkan di bahagian lain pertanyaan.

Atas ialah kandungan terperinci Mengapa Pembolehubah PHP Menyebabkan Ralat Apabila Digunakan dalam Klausa VALUES MySQL?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan