Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tolak pernyataan MySQL PDO jika nilai tertentu ditemukan di bidang?

Jika Anda menggunakan PDO, Anda dapat menangkap pengecualian dan memeriksa kode status, misalnya

// make sure you're set to throw exceptions
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('INSERT INTO `user` (`email`) VALUES (?)');
try {
    $stmt->execute([$email]);
} catch (PDOException $e) {
    $errorInfo = $stmt->errorInfo(); // apparently PDOException#getCode() is pretty useless
    if ($errorInfo[1] == 1586) {
        // inform user, throw a different exception, etc
    } else {
        throw $e; // a different error, let this exception carry on
    }        
}

Lihat http://dev.mysql. com/doc/refman/5.5/en/error-messages-server.html#error_er_dup_entry_with_key_name

Prosesnya akan serupa jika menggunakan MySQLi

$stmt = $mysqli->prepare('INSERT INTO `user` (`email`) VALUES (?)');
$stmt->bind_param('s', $email);
if (!$stmt->execute()) {
    if ($stmt->errno == 1586) {
        // inform user, throw a different exception, etc
    } else {
        throw new Exception($stmt->error, $stmt->errno);
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah Koneksi MySQL Windows 7 PHP

  2. Transpose Baris ke Header di MYSQL

  3. mysqldump gagal dengan Melewatkan data dump untuk tabel 'table1', tidak memiliki bidang

  4. Koneksi Database MySQL Dengan Visual Studio 2013 Preview

  5. Apa perbedaan antara Is Not Null dan Not Is Null?