Page 1 sur 1

correction de script

Posté : 07 juil. 2006, 09:43
par ctiven
Est ce que vous pouvez me dire s'il ya une erreur dans ce petit script?
La table est cree mais elle reste vide.
<?
$chemin = "sql.free.fr";
$username = "xxx";
$password = "xxx";
$bdd = "xxx";

$connexion = mysql_connect($chemin,$username,$password);
mysql_select_db($bdd);
$creer = "CREATE TABLE utilisateurs (id INT NOT NULL AUTO_INCREMENT , PRIMARY KEY (id), username VARCHAR
(30), password VARCHAR (10), email VARCHAR (20) )";
mysql_query($creer);

$insert = "INSERT INTO utilisateurs (username,password,email)
values('root','12345',[email protected]')";
mysql_query( $insert);
mysql_close($connexion);
?>

Posté : 07 juil. 2006, 09:59
par Devether
tu a 4 champs dans ta table donc meme si l'id est en auto-increment, tu dois lui dire qu'il restes vide.

essaie avec ça

Code : Tout sélectionner

$insert = "INSERT INTO utilisateurs (id,username,password,email) values('','root','12345',[email protected]')";

Posté : 07 juil. 2006, 11:37
par Cyrano
Faux : si tu n'indiques pas un champ dans une requête d'insertion, MySQL gèrera tout seul et insèrera automatiquement la valeur par défaut si elle est définie, incluant (et surtout) un champ auto-incrémenté. Il faudrait effectivement envoyer une chaine vide si tu ne précisais pas du tout les champs dans une requête du type :

Code : Tout sélectionner

INSERT INTO table VALUES('', 'val1', ''val2',...etc...);
Si ton code ne fonctionne pas, ajoute une gestion des erreurs :
<?php
$chemin   = "sql.free.fr";
$username = "xxx";
$password = "xxx";
$bdd      = "xxx";

$connexion = mysql_connect($chemin,$username,$password);
mysql_select_db($bdd);
$creer = "CREATE TABLE utilisateurs (".
         "id INT NOT NULL AUTO_INCREMENT , ".
         "username VARCHAR(30), ".
         "password VARCHAR (10), ".
         "email VARCHAR (20), ".
         "PRIMARY KEY (id)".
         ")";
mysql_query($creer) or die("Erreur lors de la création de la table utilisateurs : ". mysql_error($connexion));

$insert = "INSERT INTO utilisateurs (username,password,email) ".
          "VALUES('root','12345',[email protected]')";
mysql_query( $insert) or die("Erreur lors de l'insertion des données : ". mysql_error($connexion));

mysql_close($connexion);
?>

Posté : 07 juil. 2006, 11:57
par iruka
 "VALUES('root','12345',[email protected]')"; 
il ne manquerait pas :
 "VALUES('root','12345','[email protected]')"; 
a priori, il s agit d un champ varchar et non d un champ numerique, ca peut jouer ce genre de truc... enfin Cyrano a largement raison pour le debuggage.