Rumah > pangkalan data > tutorial mysql > Mengapa PDO Saya Tidak INSERT IN TO Prepared Statement Berfungsi?

Mengapa PDO Saya Tidak INSERT IN TO Prepared Statement Berfungsi?

Linda Hamilton
Lepaskan: 2025-01-13 07:14:42
asal
524 orang telah melayarinya

Why Doesn't My PDO INSERT INTO Prepared Statement Work?

Menggunakan PDO Prepared Statement dengan MySQL INSERT INTO Queries

Objek Data PHP (PDO) menawarkan pernyataan yang disediakan untuk interaksi MySQL yang selamat, tetapi membina INSERT INTO pertanyaan boleh mencabar. Mari kita atasi isu biasa dan penyelesaiannya.

Pertimbangkan kod ini:

<code class="language-php">$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')");
$statement->execute();</code>
Salin selepas log masuk

Kod yang kelihatan betul ini sering gagal mengisi pangkalan data. Kenapa?

Pautan yang Hilang: Pengikat Parameter

Kuncinya ialah pengikatan parameter. Ini menghalang kelemahan suntikan SQL dan meningkatkan kebolehselenggaraan kod. Daripada membenamkan nilai secara langsung, PDO menggunakan ruang letak:

  1. Parameter Dinamakan: Gunakan ruang letak seperti :name dalam SQL dan berikan nilai dalam tatasusunan bersekutu kepada execute().
  2. Parameter Kedudukan: Gunakan ? sebagai ruang letak dan bekalkan nilai dalam tatasusunan yang diindeks secara berangka kepada execute().

Kod Dibetulkan dengan Pengikatan Parameter

Berikut ialah kod yang diperbetulkan menggunakan parameter bernama:

<code class="language-php">$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES (:name, :lastname, :age)");
$statement->execute([
    'name' => 'Bob',
    'lastname' => 'Desaunois',
    'age' => '18',
]);</code>
Salin selepas log masuk

Dan inilah persamaannya menggunakan parameter kedudukan:

<code class="language-php">$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES (?, ?, ?)");
$statement->execute(['Bob', 'Desaunois', '18']);</code>
Salin selepas log masuk

Kelebihan Pengikatan Parameter

Pengikatan parameter meningkatkan keselamatan pangkalan data dan menjadikan kod anda lebih cekap dan boleh dibaca. Ia penting untuk penggunaan PDO yang mantap. Menguasai teknik ini adalah penting untuk pengaturcaraan pangkalan data PHP yang selamat dan berkesan.

Atas ialah kandungan terperinci Mengapa PDO Saya Tidak INSERT IN TO Prepared Statement Berfungsi?. 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