Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw pole identyfikatora wygenerowane przez wyzwalacz, ale nie przekazane dalej

Osobiście używam procedur składowanych.
Oto podstawowy przykład z PDO:

Kod do tworzenia Procedur składowanych :

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

I kod 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);

Mam nadzieję, że pomogłem. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sobie z tym poradzić Serwer MySQL działa z opcją --secure-file-priv, więc nie może wykonać tej instrukcji na komputerze Mac

  2. MySQL CREATE USER ze zmienną?

  3. Jak zainstalować MySQL 5.7 na Amazon ec2?

  4. zapytanie mysql, aby wybrać wszystko oprócz czegoś

  5. PERIOD_DIFF() Przykłady – MySQL