Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Từ chối câu lệnh PDO MySQL nếu một giá trị được chỉ định được tìm thấy trong một trường?

Nếu đang sử dụng PDO, bạn có thể bắt ngoại lệ và kiểm tra mã trạng thái, ví dụ:

// 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
    }        
}

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

Quá trình sẽ tương tự nếu sử dụng 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. tăng hiệu suất trên một truy vấn SELECT với tập dữ liệu điểm 3D lớn

  2. Git bash trên windows 7. Lệnh mysqldump không hoạt động

  3. Tôi nên truy vấn MySQL như thế nào và làm cách nào để lưu vào bộ nhớ cache các kết quả từ MySQL?

  4. Sử dụng regex với LIKE để sắp xếp các bảng chữ cái trước rồi đến các ký hiệu SQL

  5. mySQL ::chèn vào bảng, dữ liệu từ bảng khác?