Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 10h56   #1
Candidat au titre de Membre du Club
 
Homme Lamine
Étudiant
Inscription : juin 2011
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Lamine
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juin 2011
Messages : 84
Points : 11
Points : 11
Par défaut Probleme avec la fonction sqlsrv_query() pour php/sqlserver 2008

Bonjour,

J'ai un souci avec la fonction sqlsrv_query() depuis 2 jours et ça rend fou !!!
En fait, j'ai un formulaire avec des données à saisir et via ce formulaire, les données doivent être enregistrées dans une base de données sqlserver 2008. A chaque fois que je valide le formulaire, j'ai l'erreur suivante sachant que la connexion est réussi:

Connection established.
Warning: sqlsrv_query() expects parameter 1 to be resource, object given in D:\Program Files\EasyPHP-5.3.6.0\www\base\abc.php on line 36
Erreur. Pas d'enregistrement effectuéArray ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [code] => -14 [2] => An invalid parameter was passed to sqlsrv_query. [message] => An invalid parameter was passed to sqlsrv_query. ) )


Voici le code du formulaire:

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
28
29
30
31
32
33
34
35
 
<html>
<form id="Registre Personnes" name="Registre Personnes" method="POST" action="abc.php">
  <p>
    <label FOR="CNAP"><strong>CNAP</strong></label>
    <input type="text" name="CNAP" id="CNAP" />
 
  <p>
    <label FOR="Nom"><strong>Nom</strong></label>
    <input type="text" name="Nom" id="Nom" />
</span></p>
  <p>
    <label FOR="Prenom"><strong>Prenom</strong></label>
    <input type="text" name="Prenom" id="Prenom" />
</span></p>
  <p>
    <label FOR="Sexe"><strong>Sexe</strong></label>
    <SELECT name="Sexe" id="Sexe">
      <option>Masculin</option>
      <option>Feminin</option>
    </select>
  </p>
  <p>
    <label FOR="Date_de_Naissance"><strong>Date de Naissance</strong></label>
    <input onclick="ds_sh(this);" type="text" name="Date_de_Naissance" id="Date_de_Naissance" style="cursor: text"/>
 
  <p>
    <label FOR="Date_de_Creation"><strong>Date de Creation</strong></label>
    <input onclick="ds_sh(this);" type="text" name="Date_de_Creation" id="Date_de_Creation" style="cursor: text"/>
 
  <p>
    <input type="submit" name="button" id="button" value="Valider" />
    <input type="reset" name="button2" id="button2" value="Réinitialiser" />
</form>
</html>

Voici le fichier php de traitement:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
<?php
# FileName="Connection_php_mysql.htm"
# Type="SQLSERVER"
# HTTP="true"
$Mainconnect = "KGR50\SQLEXPRESS";
$database_Mainconnect = "alpha_db";
$username_Mainconnect = "alpha";
$password_Mainconnect = "gamma";
 
/*
Connect to the local server using Windows Authentication and specify
the AdventureWorks database as the database in use. To connect using
SQL Server Authentication, set values for the "UID" and "PWD"
 attributes in the $connectionInfo parameter. For example:
*/
$connectionInfo = array("UID" =>$username_Mainconnect, "PWD" =>$password_Mainconnect, "Database"=>$database_Mainconnect);
 
/*$serverName = $hostname_Mainconnect;*/
$conn = new PDO("sqlsrv:server=$Mainconnect;database=$database_Mainconnect",$username_Mainconnect,$password_Mainconnect);
 
IF($conn)
{
     echo "Connection established.\n";
}
else
{
     echo "Connection could not be established.\n";
}
 
//-----------------------------------------------
// Perform operations WITH connection.
//-----------------------------------------------
$insertSQL="INSERT INTO registre_personnes (CNAP, Nom, Prenom, Sexe, Date_de_Naissance, Date_de_Creation)
VALUES ('$_POST[CNAP]','$_POST[Nom]','$_POST[Prenom]','$_POST[Sexe]','$_POST[Date_de_Naissance]','$_POST[Date_de_Creation]')";
 
IF(sqlsrv_query($conn,$insertSQL))
{
      echo "Enregistrement effectué";
} 
else
{
      echo "Erreur. Pas d'enregistrement effectué";
      die(print_r(sqlsrv_errors(),true));
}
 
?>
Merci pour votre aide !!!!
lemzo84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 11h09   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

a première vue, IF($conn) sera toujours verifié. $conn est un objet, et vous testez son existence.
Vous ne testez pas si la connexion à bien été établie. D’ailleurs je ne suis pas sur que vous l’établissiez, il faudrait voir la doc de PDO pour cela.

N'y aurait-il pas une méthode "connect()" a appeler ?
N'y a-t-il pas non plus une méthode retournant l’état de la connexion ?

vous aurez surement plus de chance dans le forum PHP...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h49.


 
 
 
 
Partenaires

Hébergement Web