sql >> Database >  >> RDS >> Mysql

mysql-update - lege velden overslaan?

Het zal ze vervangen door lege waarden. De juiste manier om dit te doen is om die items helemaal niet in de query te plaatsen:

if (empty($field1) && empty($field2) && empty($field3) {
  // show error message, nothing to do
  return;
}

$updates = array();
if (!empty($field1))
  $updates[] = 'field1="'.mysql_real_escape_string($field1).'"';
if (!empty($field2))
  $updates[] = 'field2="'.mysql_real_escape_string($field2).'"';
if (!empty($field3))
  $updates[] = 'field3="'.mysql_real_escape_string($field3).'"';
$updates = implode(', ', $updates);

mysql_query("UPDATE table SET $updates WHERE ID=123");

Het is duidelijk dat het schoner zou zijn om de wijzigingen in een associatieve array of object te plaatsen en er vervolgens doorheen te bladeren.



  1. PHP PDO genereert geen uitzondering bij het invoegen van dubbele sleutels

  2. Negeer de datumbereikparameter in de waar-clausule wanneer de parameter niet is ingevoerd

  3. SQL:GROUP BY en MAX gebruiken op meerdere kolommen

  4. Hoe deze MySQL-tabel op de meest performante manier opvragen?