Bonjour,

Je souhaite faire appel à une procédure stockée dans mon code php.

Sous SQLSERVER, ma procédure stokée est appellée de cette manière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec maProcedure @myparam='D', @mydate='2002-06-21'

Je procède de la sorte afin d'appeler cette procédure stockée dans mon code php

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
$serverName = "myserver\monInstance"; //serverName\instanceName
	$connectionInfo = array( "Database"=>"mydb", "UID"=>"myuse", "PWD"=>"mypwd");
	$conn = sqlsrv_connect( $serverName, $connectionInfo);
 
 
	$tsql_callSP = "{call maProcedure(?, ?)}";
	$param1= 'D';
	$param2 = 2002-06-21;
	$params = Array(
		Array(&$param1, SQLSRV_PARAM_IN, null),
		Array(&$param2, SQLSRV_PARAM_IN, null),
	);
		Array(&$param3, SQLSRV_PARAM_OUT,SQLSRV_PHPTYPE_STRING)
 
	/* Execute the query. */  
	$stmtTerms = sqlsrv_query( $conn, $tsql_callSP, $params);
 
	if( $stmtTerms === false ) {       
	echo "Error in executing statement Terms.\n";       
	die( print_r( sqlsrv_errors(), true)); }
Le param3 est un paramètre que la procédure stockée doit me renvoyer
Voici le message d'erreur que je reçois.

Error in executing statement Terms. Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -7 [code] => -7 [2] => An invalid PHP type was specified as an output parameter. DateTime objects, NULL values, and streams cannot be specified as output parameters. [message] => An invalid PHP type was specified as an output parameter. DateTime objects, NULL values, and streams cannot be specified as output parameters. ) )
J'ai vérifié les types que je dois recevoir en sortie et ce sont bien des dates.

Auriez-vous une idée de l'erreur que je commet ?

Par avance merci.