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

Masukkan bidang ID yang dihasilkan dari pemicu, tetapi tidak diteruskan

Secara pribadi saya menggunakan prosedur tersimpan.
Berikut adalah contoh dasar dengan PDO:

Kode untuk membuat Prosedur Tersimpan :

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

Dan kode 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);

Saya harap saya telah membantu. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah skema MySQL ke Github Wiki?

  2. Bagaimana cara menghubungkan mySQL di proyek Android saya?

  3. Paket tidak sesuai pesanan saat memanggil MySQL stored proc

  4. Cara memperbaiki MySql:ukuran kolom indeks terlalu besar (Laravel bermigrasi)

  5. Peringatan:mysqli_query():Tidak dapat mengambil mysqli