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

Chèn trường ID được tạo từ trình kích hoạt, nhưng không được chuyển qua

Cá nhân tôi sử dụng các thủ tục được lưu trữ.
Đây là một ví dụ cơ bản với PDO:

Mã để tạo Thủ tục được lưu trữ :

CREATE DEFINER=`user`@`localhost` PROCEDURE `InsertUser`(IN `Input_username` INT, OUT `Out_ID` INT)
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN

   INSERT INTO users(
        username)
    VALUES (
    Input_username);

    SET Out_ID = LAST_INSERT_ID();
    SELECT Out_ID;
END

mã PHP :

  $insert = "CALL InsertUser(:Input_username,
                             @Out_ID)";
  $bdd = new PDO('mysql:host=localhost;dbname=db-name', 'user', 'password');

  $stmt = $bdd->prepare($insert);     
  $stmt->bindParam(':Input_username', rand(), PDO::PARAM_STR); // to create random name

  $stmt->execute();
  $tabResultat = $stmt->fetch();
  $id_user = $tabResultat['Out_ID'];
  var_dump($id_user);

Tôi hy vọng tôi đã giúp. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quyền truy cập bị từ chối đối với người dùng 'test' @ 'ip' (sử dụng mật khẩu:CÓ)

  2. Quy trình đã lưu trữ Tự động xóa các hàng cũ hơn 7 ngày trong MYSQL

  3. Ghi đè tên bảng trong Flask-Alchemy

  4. Làm thế nào để lấy kích thước của cơ sở dữ liệu mysql?

  5. Cách chọn tên miền từ địa chỉ email