php
  • insert
  • pdo
  • postgresql
  • 2010-01-26 10 views 6 likes 
    6

    In PHP, sto usando PDO con i driver pgSQL. Volevo sapere come ottenere il valore della clausola "RETURNING" fornita nella query sql INSERT. mio codice attuale si presenta così,In PHP, quando si utilizza PDO con pgSQL come ottenere il valore della clausola "RETURNING" nella query sql INSERT originale

    $query = 'INSERT INTO "TEST" (firstname, lastname) VALUES ('John', 'Doe') RETURNING user_id'; 
    $queryHandle = $connection->prepare($query); 
    $queryHandle->execute(); 
    

    Ovviamente

    $ queryHandle-> execute();

    restituisce VERO o FALSO. Ma volevo ottenere il valore di "user_id" se l'inserimento avesse successo. Ragazzi, potete darmi un suggerimento su come procedere? Grazie.

    +0

    Ho provato a utilizzare PDO :: lastInsertID prima. Ma stava solo restituendo valori vuoti. Quindi dopo aver guardato in giro ha scoperto che il modo sopra è molto più pulito. – Chantz

    risposta

    9

    Forse si è tentato di trattare il comando come un prescelto di ritorno, in esecuzione

    $ret=$queryHandle->fetchAll(); 
    
    +0

    Funziona sicuramente! :) Ma speravo in un modo più diretto/pulito per farlo. Forse sto chiedendo troppo ... – Chantz

    +0

    Non c'è un modo più pulito, dato che hai dati restituiti. È banale che devi prenderlo. – Pentium10

    +1

    k. Solo una cosa secondaria, ho usato fetch() invece di fetchAll() sinonimo di un solo inserto alla volta. – Chantz

    11
    $ret = $queryHandle->fetchColumn(); 
    

    restituirà un singolo valore, invece di un array.

    +0

    Questo è il modo corretto se vuoi solo recuperare l'ID "RETURNING id ..." – Xeoncross

    Problemi correlati