sql >> Database >  >> RDS >> Mysql

INSERT IGNORE met behulp van Laravel's Fluent

Probeer deze magie in uw model:

public static function insertIgnore($array){
    $a = new static();
    if($a->timestamps){
        $now = \Carbon\Carbon::now();
        $array['created_at'] = $now;
        $array['updated_at'] = $now;
    }
    DB::insert('INSERT IGNORE INTO '.$a->table.' ('.implode(',',array_keys($array)).
        ') values (?'.str_repeat(',?',count($array) - 1).')',array_values($array));
}

Gebruik als volgt:

Shop::insertIgnore(array('name' => 'myshop'));

Dit is een geweldige manier om schendingen van beperkingen te voorkomen die kunnen optreden met firstOrCreate in een omgeving met meerdere gebruikers, als die 'name'-eigenschap een unieke sleutel was.



  1. MySQL, Controleer of een kolom bestaat in een tabel met SQL

  2. Selecteer indien aanwezig anders invoegen?

  3. Leesbare code schrijven voor VBA - Probeer* patroon

  4. Mysql_real_escape_string() Er kon geen link naar de server tot stand worden gebracht