sql >> Database teknologi >  >> RDS >> Mysql

Hvordan ignorerer man en parameter i en forberedt mysqli-forespørgsel i PHP?

Du kan opbygge en liste over kriterierne og tilføje bindeværdier og typer til en liste, her er en hurtig mock-up, som bruger to af de felter, du henviser til...

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

Bemærk, at bind_param() bruger ... for at give dig mulighed for at sende et array i stedet for de individuelle felter.




  1. Sådan bruges OBJECT_ID() på krydsdatabaseobjekter i SQL Server

  2. PostgreSQL unnest() med elementnummer

  3. Hvordan genererer man hele databasescriptet i MySQL Workbench?

  4. mysql opdatering med regexp