Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengikat Susunan Rentetan ke MySQLi WHERE IN Klausa?

Bagaimana untuk Mengikat Susunan Rentetan ke MySQLi WHERE IN Klausa?

Linda Hamilton
Lepaskan: 2025-01-01 14:06:12
asal
537 orang telah melayarinya

How to Bind an Array of Strings to a MySQLi WHERE IN Clause?

Mengikat Tatasusunan Rentetan dalam Klausa WHERE IN Menggunakan Penyata Disediakan MySQLi

Anda boleh menghadapi cabaran apabila cuba mengikat tatasusunan nilai ke klausa WHERE IN menggunakan MySQLi. Satu ralat biasa ialah menggunakan bind_param dengan salah. Begini cara untuk menyelesaikan isu ini:

PHP 8.2 dan Ke Atas: Execute_query()

PHP 8.2 memperkenalkan fungsi execute_query(), yang menjadikannya mudah untuk melaksanakan pernyataan yang disediakan dengan berbilang nilai.

Contoh:

$mysqli = new mysqli("localhost", "root", "root", "db");
$array = ['Nashville','Knoxville'];
$parameters = str_repeat('?,', count($array) - 1) . '?';
$sql = "SELECT name FROM table WHERE city IN ($parameters)";
$result = $mysqli->execute_query($sql, $array);
$data = $result->fetch_all(MYSQLI_ASSOC);
Salin selepas log masuk

PHP 8.1: Array into execute()

Untuk PHP 8.1, anda boleh menghantar tatasusunan terus ke execute():

$mysqli = new mysqli("localhost", "root", "root", "db");
$array = ['Nashville','Knoxville'];
$sql = "SELECT name FROM table WHERE city IN (".str_repeat('?,', count($array) - 1) . '?)';
$stmt = $mysqli->prepare($sql);
$stmt->execute($array);
$result = $stmt->get_result();
$data = $result->fetch_all(MYSQLI_ASSOC);
Salin selepas log masuk

Versi PHP Lama: Sediakan/Ikat/ Laksanakan

Untuk versi lama, gunakan pendekatan berikut:

$mysqli = new mysqli("localhost", "root", "root", "db");
$array = ['Nashville','Knoxville'];
$in = str_repeat('?,', count($array) - 1) . '?';
$sql = "SELECT name FROM table WHERE city IN ($in)";
$types = str_repeat('s', count($array));
$stmt = $mysqli->prepare($sql);
$stmt->bind_param($types, ...$array);
$stmt->execute();
$result = $stmt->get_result();
$data = $result->fetch_all(MYSQLI_ASSOC);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengikat Susunan Rentetan ke MySQLi WHERE IN Klausa?. 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