sql >> Databasteknik >  >> RDS >> Mysql

Hur ignorerar man en parameter i en förberedd mysqli-fråga i PHP?

Du kan bygga upp en lista över kriterierna och lägga till bindningsvärdena och typerna i en lista, här är en snabb modell som använder två av fälten du refererar till...

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

Lägg märke till att bind_param() använder ... så att du kan skicka en array istället för de enskilda fälten.




  1. Snabb delad partitionering

  2. Hur man tar bort rader från tre tabeller - frågefel

  3. URL-strängformat för att ansluta till Oracle-databas med JDBC

  4. Hur man tar bort "X Rows Selected" i SQLcl &SQL*Plus (Oracle)