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
Linda Hamiltonasal
2025-01-13 07:14:42521semak imbas

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>

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>

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>

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!

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