Bonjour a tous,
apres avoir couple php et sql serveur 2000
je me suis mis aux procedures stockees grace a un tuto trouves sur le net.
ca tourne impeccable je dois vous dire ...mais ou je vais appel a vous c'est parce que
j'ai besoin de quelques p'tits renseignements ...
Voila j'ai une p'tite procedure stockee qui ne fait que d'inserer des valeurs ds une table et renvoi
la clef en output
voici ma store proc :
-----------------------
create PROC ajoutlivres
--declartations des variables
@nouvtitre varchar(50),
@nouvedition varchar(30),
@nouvisbn varchar(20)
--renvoit
@cleflivre int output
--rerquete insert
as
insert into livres
(titre, edition, isbn, statut)
values (@nouvtitre, @nouvedition, @nouvisbn, '1')
set @cleflivre = (select @@IDENTITY as PK_livres)
bon voila donc voici mon script php qui se connecte a ms sql et qui initialise
la store proc et retourne le parametre.
J'aimerais juste savoir pourquoi je dois mettre ceci => true false dans cette ligne et
a quoi cela correspond!
/*PARAMETRE DE SORTIE !! ATTENTION AUX PARAMETRE DE SORTIE !! */
mssql_bind($query, "@cleflivre", $Id, SQLINT4, TRUE, FALSE, 10);
et j'ai remarque aussi que si je mettais sqlint1 a la place de sqlint4
le retour de mon parametre ne
correspondait pas a ma pk!!!! Oui j'obetnais bien un integer mais ce nombre ne correspond pas
a la clef inserer ! Donc pouvez vous me dire pourquoi?!
<?php
/*DECLARATIONS POUR LA CONNECTION*/
$MonServer = "localhost";
$MonUser = "sa";
$MonPass = "xxxxx";
$MaDB = "projetpret";
/*CONNECTION A SQL SERVEUR*/
$s = @mssql_connect($MonServer, $MonUser, $MonPass)
or die("Couldn't connect to SQL Server on $MonServer");
/*SELECTION DE LA DB*/
$d = @mssql_select_db($MaDB, $s)
or die("Couldn't open database $MaDB");
/*TEST CONNECTION*/
echo"Test de connection à la base:".$MaDB;
echo"<br>";
/* appel et intitialisation */
$query = mssql_init("ajoutlivres", $s);
$newtitre="test";
$newedition="test";
$newisbn="test";
/* INITIALISATION */
mssql_bind($query, "@nouvtitre", $newtitre, SQLVARCHAR);
mssql_bind($query, "@nouvedition", $newedition, SQLVARCHAR);
mssql_bind($query, "@nouvisbn", $newisbn, SQLVARCHAR);
/*PARAMETRE DE SORTIE !! ATTENTION AUX PARAMETRE DE SORTIE !! */
mssql_bind($query, "@cleflivre", $Id, SQLINT4, TRUE, FALSE, 10);
/* EXECUTION DE LA SP*/
$result = mssql_execute($query);
/*AFFICHAGE DU RESULTAT*/
echo $Id;
?>
Je vous remercie
Christophe