Rumah > pembangunan bahagian belakang > tutorial php > Cara Mengelakkan Rasuah Data dengan Percanggahan Susunan Parameter dalam Pernyataan PHP Disediakan UPDATE Pertanyaan

Cara Mengelakkan Rasuah Data dengan Percanggahan Susunan Parameter dalam Pernyataan PHP Disediakan UPDATE Pertanyaan

DDD
Lepaskan: 2024-10-21 20:05:03
asal
785 orang telah melayarinya

How to Avoid Data Corruption with Parameter Order Discrepancies in PHP Prepared Statement UPDATE Queries

Amalan Terbaik untuk PHP Prepared Statement UPDATE

Pernyataan yang disediakan adalah penting untuk melindungi daripada suntikan SQL dan memastikan integriti data. Artikel ini menangani isu biasa yang dihadapi apabila menggunakan pernyataan yang disediakan untuk pertanyaan KEMASKINI dalam PHP.

Ikat Percanggahan Susunan Parameter

Seperti yang ditunjukkan oleh kod yang disediakan, parameter pengikat dalam salah pesanan boleh membawa kepada tingkah laku UPDATE yang salah. Susunan pengikatan parameter mesti sepadan dengan susunan ruang letak dalam pernyataan SQL. Dalam coretan kod, $content terikat pada pemegang tempat pertama ('?') dan $id terikat pada yang kedua. Walau bagaimanapun, klausa WHERE mencari nilai $content dalam lajur id, yang berkemungkinan bukan perkara yang anda maksudkan.

Menterbalikkan susunan parameter akan membetulkan isu ini:

<code class="php">$stmt->bind_param('si', $id, $content);</code>
Salin selepas log masuk

Meloloskan diri adalah Tidak Diperlukan

Apabila menggunakan parameter dalam pernyataan yang disediakan, tidak perlu melepaskan data input secara manual. Percubaan untuk melarikan diri daripada pembolehubah $content di sini bukan sahaja tidak diperlukan tetapi boleh mengakibatkan pemasukan aksara garis miring ke belakang literal ('') ke dalam kandungan anda.

Pengendalian Ralat

Adalah penting untuk memasukkan pengendalian ralat apabila bekerja dengan pernyataan yang disediakan. Coretan kod berikut menunjukkan:

<code class="php">if ($stmt === false) {
  trigger_error($this->mysqli->error, E_USER_ERROR);
  return;
}</code>
Salin selepas log masuk
<code class="php">if ($status === false) {
  trigger_error($stmt->error, E_USER_ERROR);
}</code>
Salin selepas log masuk

Dengan mengendalikan ralat dengan sewajarnya, anda boleh menentukan punca sebarang isu dan menghalang peningkatannya.

Kemas Kini Separa Medan

Anda betul-betul bertanya sama ada boleh diterima untuk mengemas kini medan tertentu sahaja dalam kenyataan KEMASKINI. Jawapannya ya. Menggunakan pernyataan yang disediakan membolehkan anda menetapkan nilai secara selektif untuk lajur yang ingin anda ubah suai, meninggalkan lajur yang selebihnya tidak terjejas.

Atas ialah kandungan terperinci Cara Mengelakkan Rasuah Data dengan Percanggahan Susunan Parameter dalam Pernyataan PHP Disediakan UPDATE Pertanyaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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