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
Linda Hamiltonasal
2025-01-01 14:06:12572semak imbas

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);

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);

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);

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!

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