Maison >base de données >tutoriel mysql >Comment utiliser correctement l'opérateur IN avec des instructions préparées MySQLi et plusieurs paramètres ?
Utilisation de l'opérateur IN avec les instructions préparées MySQLi
Lors de l'utilisation de l'opérateur IN avec l'opérateur IN dans les instructions préparées MySQLi, il est crucial de formater correctement les paramètres. Le code initial fourni :
$data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN (?)'); $data_res->bind_param('s', $in_statement);
implique une erreur car $in_statement est une chaîne plutôt qu'un tableau de valeurs. Pour résoudre ce problème, une approche alternative utilisant la fonction call_user_func_array est présentée :
$int = str_repeat('i', $count_params); array_unshift($arParams, $int); $q = array_fill(0, $count_params, '?'); $params = implode(',', $q); $data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN ('.$params.')'); call_user_func_array(array($data_res, 'bind_param'), $arParams);
Dans ce code modifié :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!