Menggunakan PDO untuk Pertanyaan PILIHAN Parameter
Apabila bekerja dengan PHP dan PDO, adalah penting untuk memanfaatkan pertanyaan berparameter untuk meningkatkan keselamatan dan prestasi. Mari kita mendalami cara menggunakan objek PDO dengan betul untuk pertanyaan SELECT.
Langkah 1: Sediakan Pertanyaan
Mulakan dengan menyediakan pernyataan pertanyaan menggunakan prepare() kaedah pada objek PDO:
$statement = $db->prepare("SELECT id FROM some_table WHERE name = :name");
Di sini, kami menggunakan pemegang tempat :name dalam pertanyaan untuk mewakili parameter input.
Langkah 2: Ikat Parameter
Seterusnya, ikat parameter input pada ruang letak menggunakan kaedah execute() dengan tatasusunan nilai parameter :
$statement->execute(array(':name' => $parameter_value));
Langkah ini memastikan input pengguna dianggap sebagai nilai dan bukannya sebahagian daripada pertanyaan, menghalang suntikan SQL serangan.
Langkah 3: Ambil Keputusan
Untuk mendapatkan semula hasil daripada pertanyaan SELECT, gunakan kaedah fetch(). Ini mengambil baris pertama set hasil. Untuk berbilang baris, gunakan fetchAll() atau ulangi pernyataan menggunakan pelaksanaan Iteratornya:
$row = $statement->fetch(); // Get the first result
Langkah 4: Gunakan Hasil
Hasil yang diambil disimpan dalam tatasusunan. Dalam kes anda, anda berhasrat untuk mendapatkan semula id untuk digunakan dalam operasi INSERT.
Langkah 5: Sediakan dan Laksanakan Pertanyaan INSERT
Sediakan dan laksanakan pertanyaan INSERT dengan ID yang diperolehi sebagai parameter:
$statement = $db->prepare("INSERT INTO some_other_table (some_id) VALUES (:some_id)"); $statement->execute(array(':some_id' => $row['id']));
Langkah 6: Tangani Ralat (Pilihan)
Untuk pengendalian ralat yang lebih mudah, dayakan pengecualian PDO menggunakan kaedah setAttribute():
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Jika mana-mana pertanyaan mengakibatkan ralat, ia akan mencetuskan PDOException, menjadikan pengendalian ralat lebih mudah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan SELECT dengan Selamat dan Menggunakan Hasilnya dalam Pertanyaan INSERT dengan PDO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!