Menggabungkan Penyata Disediakan dengan INSERT INTO
Setelah merentasi kedalaman labirin PHP: Data Objects, teka-teki yang membingungkan timbul apabila cuba melaksanakan MySQL pertanyaan menggunakan pernyataan yang disediakan, khusus untuk operasi INSERT INTO. Pertimbangkan coretan kod berikut:
$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')"); $statement->execute();
Walaupun mematuhi kaedah yang ditetapkan, pangkalan data tetap terpencil. Marilah kita meneroka elemen yang hilang yang telah menghalang kemajuan kita.
Kunci untuk membuka kunci potensi pernyataan yang disediakan untuk pertanyaan INSERT INTO terletak pada pengikatan parameter, teknik yang membolehkan penyepaduan nilai yang selamat dan dinamik ke dalam pernyataan SQL. Ini dicapai dengan memasukkan ruang letak ke dalam pertanyaan dan seterusnya memberikan nilai yang sepadan sebagai tatasusunan bersekutu semasa pelaksanaan.
Perhatikan kod yang disemak:
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (:fname, :sname, :age)'); $statement->execute([ 'fname' => 'Bob', 'sname' => 'Desaunois', 'age' => '18', ]);
Perhatikan kehadiran nama parameter, ' :fname', ':sname' dan ':age', dalam pertanyaan. Ini berfungsi sebagai pemegang tempat untuk nilai sebenar, yang kemudiannya disediakan sebagai tatasusunan bersekutu dalam fungsi execute().
Secara bergantian, anda boleh menggunakan '?' sintaks sebagai ruang letak dan lulus tatasusunan nilai tanpa menyatakan nama parameter:
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (?, ?, ?)'); $statement->execute(['Bob', 'Desaunois', '18']);
Kedua-dua pendekatan menawarkan kelebihan dan kelemahan masing-masing. Menggunakan parameter bernama meningkatkan kebolehbacaan, manakala '?' sintaks memudahkan proses mengikat nilai. Walau bagaimanapun, akhirnya, pilihan antara kedua-duanya adalah soal keutamaan peribadi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pernyataan Disediakan dengan INSERT INTO dengan betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!