sql >> Databáze >  >> RDS >> Mysql

Vložte pole ID vygenerované ze spouštěče, ale nepředané

Osobně používám uložené procedury.
Zde je základní příklad s PDO:

Kód pro vytvoření Uložených procedur :

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

A kód 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);

Doufám, že jsem pomohl. :)



  1. Uzamkněte tabulku mysql pomocí php

  2. Jaký je v SQL / MySQL rozdíl mezi ON a WHERE v příkazu spojení?

  3. Jak funguje funkce RIGHT() v MySQL

  4. Jak mohu získat počet zákazníků za den podle jedinečného a opakujícího se zákazníka pro konkrétní datum?