Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте обвързан параметър няколко пъти

Вече няколко пъти се сблъсках със същия проблем и мисля, че намерих доста просто и добро решение. В случай, че искам да използвам параметри няколко пъти, просто ги съхранявам в MySQL User-Defined Variable .
Това прави кода много по-четлив и нямате нужда от допълнителни функции в PHP:

$sql = "SET @term = :term";

try
{
    $stmt = $dbh->prepare($sql);
    $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR);
    $stmt->execute();
}
catch(PDOException $e)
{
    // error handling
}


$sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term";

try
{
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    $stmt->fetchAll();
}
catch(PDOException $e)
{
    //error handling
}

Единственият недостатък може да е, че трябва да направите допълнителна MySQL заявка - но имхо, напълно си заслужава.
Тъй като User-Defined Variables са свързани със сесия в MySQL, също така няма нужда да се притеснявате за променливата @term причиняват странични ефекти в многопотребителска среда.



  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 и MySQL - част 2

  2. Python от нулата:Създайте динамичен уебсайт

  3. TIME() Примери – MySQL

  4. Как да работите с MySQL подзаявки

  5. Как да предоставим всички привилегии на root потребител в MySQL 8.0