Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment ignorer un paramètre dans une requête mysqli préparée en PHP ?

Vous pouvez créer une liste des critères et ajouter dans une liste les valeurs et les types de liens, voici une maquette rapide qui utilise deux des champs auxquels vous vous référez...

$data = [];
$params = "";
$where = [];
if ( !empty($name)) {
    $data[] = $name;
    $params.="s";
    $where[] = "name like ?";
}
if ( !empty($size)) {
    $data[] = $size;
    $params.="i";
    $where[] = "size < ?";
}
$sql = "SELECT * FROM items";
if ( count($where) > 0 ){
    $sql .= " where ". implode ( " and ", $where);
}
$query = $database->prepare($sql);
$query->bind_param($params, ...$data);
$query->execute();

Notez que le bind_param() utilise le ... pour vous permettre de passer un tableau au lieu des champs individuels.