php+mssql+linux(dblib): probleme @@Identity ou transaction ou multiple rowsets
Bonjour,
je sèche depuis un bon moment sur ce problème et j'ai beau essayé je ne trouve pas de parade à mon problème.
Je cherche à faire un insert et à récupérer la valeur de cet insert
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
$dsn = 'dblib:host=IPBase;dbname=NomBase';
$user = 'usr';
$password = 'pass';
try{
$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET QUOTED_IDENTIFIER ON');
$pdo->exec('SET ANSI_WARNINGS ON');
$pdo->exec('SET ANSI_PADDING ON');
$pdo->exec('SET ANSI_NULLS ON');
$pdo->exec('SET CONCAT_NULL_YIELDS_NULL ON');
$pdo->beginTransaction();
$dbh->exec("INSERT INTO requete_user (typeRequete) VALUES (3)");
$tmp=$dbh->exec("SELECT @@IDENTITY AS test");
$dbh->commit();
print_r($tmp);
}catch(Exception $e){
echo '<pre>';
echo print_r($e);
echo '</pre>';
} |
This driver doesn't support transactions
avec quelques chose comme ca
Code:
1 2 3 4 5
|
$sql = "INSERT INTO requete_user (typeRequete) VALUES (3)";
$sth = $pdo->query($sql);
$temp = $sth->fetchAll();
$temp2 = $pdo->lastInsertId(); |
driver does not support lastInsertId()
et avec ceci
Code:
1 2 3 4 5
|
$sql = "INSERT INTO requete_user (typeRequete) VALUES (3); SELECT @@IDENTITY AS test";
$sth = $pdo->query($sql);
$sth->nextRowset();
$tmp = $objSth->fetch(PDO::FETCH_NUM); |
driver does not support multiple rowsets
Bref, je commence à avoir des doutes sur mon choix (ou sur ma manière d'utiliser pdo). Quelqu'un aurait une idée de comment récupérer ma valeur?