[SQL, PHP] insert into avec mssql

Résolu
Bonjour,

je suis entrain de monter ma 1ere base mssql, je m'en sort pas trop mal jusque maintenant. je me connecte dessus avec PHP sans soucis, j'arrive a exécuter certaine requête, mais pas de requête d'écriture dans une table. je vous met mon code :
$servername = "SERINT\SQLEXPRESS";
	$user = "un user ;)";
	$pass = "un pass ;)";
	$data = "suivheure"; // Nommer ici la base de données
	$connect = mssql_connect($servername, $user, $pass)
	  or die("erreur de connexion mssql");
	$db = mssql_select_db($data, $connect)
	  or die("Sélection de la base impossible !");
	$nom = $_POST['nom'];
	$prenom = $_POST['prenom'];
	$visa = $_POST['visa'];
	$service = $_POST['service'];
	$activite = $_POST['activite'];
	$requetesql = "INSERT INTO [suivheure].[dbo].[utilisateur] VALUES '$nom','$prenom','$visa','$service','$activite','0'";
	$resultatsql = mssql_query ($requetesql, $connect) or die("erreur de requête mssql");;
	echo $requetesql;
	echo "<center>ajout de : <br />nom : ".$_POST['nom']."<br /> prénom : ".$_POST['prenom']."<br/> Visa : ".$_POST['visa']."<br /> Service : ".$_POST['service']."<br /> Activité : ".$_POST['activite']."<br />Réussis</center>";
	mssql_close($connect);


j'obtiens une erreur :

Warning: mssql_query() [function.mssql-query]: message: Syntaxe incorrecte vers 'courtat'. (severity 15) in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 45

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 45
erreur de requête mssql


la ligne 45 est celle ou est exécuté le mssql_query.
si vous trouvez quel peut être l'erreur... sachant que j'ai essayer avec une autre requête :

$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);
echo $row[0];


la, ça marche. donc le problème viens bien de la requête. lorsque je l'affiche, j'ai bien un

INSERT INTO [suivheure].[dbo].[utilisateur] VALUES 'unnom','zimeau','jco','info','nop','0'


donc une syntaxe correcte.
merci d'avance!

3 réponses

  1. INSERT INTO utilisateur ...................
    0
    1. les 2 font la même chose...
      j'ai une progretion, en précisant un peu la requete, j'ai pas le meme erreur. la requete est
      INSERT INTO [suivheure].[dbo].[utilisateur] ([nom] ,[prenom] ,[visa] ,[service] ,[desactive]) VALUES (unnom ,zimeau ,jco ,info ,0)


      j'ai comme erreur :

      Warning: mssql_query() [function.mssql-query]: message: Nom de colonne non valide : 'courtat'. (severity 16) in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 56
      Warning: mssql_query() [function.mssql-query]: message: Nom de colonne non valide : 'julien'. (severity 16) in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 56
      Warning: mssql_query() [function.mssql-query]: message: Nom de colonne non valide : 'jco'. (severity 16) in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 56
      Warning: mssql_query() [function.mssql-query]: message: Nom de colonne non valide : 'info'. (severity 16) in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 56
      Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\suiv'heure\utilisateur\index.php on line 56

      il met des erreurs pour tout mes champs, sauf pour le 0. les type des champ sont les suivant :
      nom : ntext, prenom : nchar(10), visa : nchar(3), service : nvarchar(50), desactive : bit
      j'avoue ne rien connaitre aux champ, je me suis donc inspiré de https://codes-sources.commentcamarche.net/
      malgré ça, sa ne passe pas :s
      0
      1. problème résolue. mon code PHP était
        sql = "INSERT INTO [suivheure].[dbo].[utilisateur]([nom],[prenom],[visa],[service],[desactive])VALUES($nom,$prenom,$visa,$service,0)";
        j'avais bien ma requete quand je l'affichais mais ne marchais pas avec mssql. en changeant avec :
        sql = "INSERT INTO [suivheure].[dbo].[utilisateur]([nom],[prenom],[visa],[service],[desactive])VALUES('$nom','$prenom','$visa','$service',0)";
        a l'affichage, la requête est la même, mais mssql le prend!
        0