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

Hvordan indsætter man en faktisk NULL-værdi i en nullbar kolonne?

Prøv at skifte til forberedte udsagn (som som en bonus er mindre tilbøjelige til SQL-injektioner).

function save($gmt, $name, $address, $phone, $remark)
{
    if(!isset($phone) || empty($phone)) { $phone = null; }
    if(!isset($remark) || empty($remark) { $remark = null; }

    $db = new PDO(...);

    $stmt = $db->prepare("INSERT INTO `user` (`gmt`, `name`, `address`, `phone`, `remark`) VALUES (:gmt, :name, :address, :phone, :remark)");
    $stmt->bindValue("gmt", $gmt, PDO::PARAM_STR);
    $stmt->bindValue("name", $name, PDO::PARAM_STR);
    $stmt->bindValue("address", $address, PDO::PARAM_STR);
    $stmt->bindValue("phone", $phone, PDO::PARAM_STR);
    $stmt->bindValue("remark", $remark, PDO::PARAM_STR);
    $stmt->execute();
}

Dette vil håndtere null værdier korrekt i MySQL



  1. Tilføjelse af et et til mange forhold til en selvreferenceforælder/barn

  2. Mysql - find en tabel i alle databaser

  3. SQLite JSON_REMOVE()

  4. Hvorfor bruger Postgres ikke indekset?