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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?