How to get the auto increment ID using MySQL and PHP and use it later? [duplicate]

0

I'm creating an API in PHP and insertion. I need to get the ID created in this INSERT and use it later. What I find of material seems not to be recommended. Any solution? Thank you.

My PHP:

    <?php

header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

    //formulário

    $data = file_get_contents("php://input");
    $objData = json_decode($data);

    // TRANSFORMA OS DADOS

    $nome = $_GET['nome'];
    $endereco = $_GET['endereco'];
    $numero = $_GET['numero'];
 //   $complemento = $_GET['complemento'];
    $bairro = $_GET['bairro'];
    $cidade = $_GET['cidade'];
    $estado = $_GET['estado'];
    $cod_cliente = $_GET['cod_cliente'];
    $outro_endereco_cod = $_GET['outro_endereco_cod'];
    $forma_pagamento = $_GET['forma_pagamento'];
    $troco = $_GET['troco'];
    $frete = $_GET['frete'];
    $valor_pedido = $_GET['valor_pedido'];
    $cod_fornecedor = $_GET['cod_fornecedor'];
    $total_pedido = $_GET['total_pedido'];

     // INSERE OS DADOS
    $db = new PDO("DADOS DA MINHA CONEXAO");


    if($db){

        $sql = "INSERT INTO dados_pedido (nome, endereco, numero, bairro, cidade, estado, cod_cliente, outro_endereco_cod, forma_pagamento, troco, frete, valor_pedido, cod_fornecedor, total_pedido) VALUES ('$nome', '$endereco', '$numero', '$bairro', '$cidade', '$estado', '$cod_cliente', '$outro_endereco_cod', '$forma_pagamento', '$troco', '$frete', '$valor_pedido', '$cod_fornecedor', '$total_pedido')";


        $query = $db->prepare($sql); 

        $query ->execute();    





        echo json_encode(array('message'=> ' Os dados foram inseridos com sucesso. Obrigado e bem vindo!' ));
    }else{
        echo json_decode(array('message'=> ' Não foi possivel iserir os dados! Tente novamente mais tarde!' ));
    };

?>
    
asked by anonymous 25.01.2017 / 13:34

1 answer

2

The PDO class in PHP 5.1.0+ has a method called lastInsertID , according to official documentation.

  

PDO :: lastInsertId - Returns the ID of the last inserted row or sequence value

So, after executing your query , just resume the value of $db->lastInsertId() to get the id of the new record.

$db = new PDO(...);
$sql = "INSERT INTO ...";
$query = $db->prepare($sql);
$query->execute();
$id = $db->lastInsertId();

echo "Último id inserido: " . $id;

The above code snippet would be a simple example of how to use the last id inserted.

  

Note : This method may not return to meaningful or consistent result across PDO drivers, because the underlying database may not support the notion of auto-increment fields or sequences. em>

    
25.01.2017 / 13:49