Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zignorować parametr w przygotowanym zapytaniu mysqli w PHP?

Możesz stworzyć listę kryteriów i dodać do listy wartości i typy powiązań, oto krótka makieta, która wykorzystuje dwa pola, do których się odwołujesz...

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

Zauważ, że bind_param() używa ... aby umożliwić przekazanie tablicy zamiast poszczególnych pól.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP zmienia stare mysql_query na PDO

  2. Yii2 Jak wykonać grupowanie warunków AND lub OR?

  3. Niedozwolona mieszanka zestawień (utf8_general_ci,IMPLICIT) i (utf8_unicode_ci,IMPLICIT) dla operacji '=' w MySQL Stored Procedure

  4. przy użyciu procedur składowanych if i else MySQL

  5. Problem z kodowaniem PHP/ODBC