[PHP\MySQL] Pb synthaxe Insert into values

Résolu/Fermé
BobJohn - 21 oct. 2010 à 10:54
faboons Messages postés 269 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 22 janvier 2024 - 21 oct. 2010 à 15:49
Bonjour,

Si le html n'a que peu de secrets pour moi, mysql/php c'est déjà bcp plus compliqué et je connais pas du tout la synthaxe

Mon objectif est d'ajouter dans une base de donnée existante un username et un password

Mon code pour le moment:
<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=nomdb', 'root', 'pass');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}

$username = "moi"; //je prendrais le mdp et username a partir d'une autre variable de mon fichier a priori
$password = "toto"; 

$pass = sha1($password); //faut que je crypte le pass

$bdd->exec('INSERT INTO yob_users(username, password) VALUES(\'Moi\', \'toto\')');

echo 'utilisateur ajouté';?>


Donc la vous l'avez compris j'ai mis dans VALUES les données brutes, mais je voudrais mettre les données de $username et $password
probleme... je connais pas la synthaxe, j'ai beau avoir cherché et essayer pleins de trucs du genre
VALUES('$username', '$pass')

ou encore
VALUES('".$username."','".$pass."')

que j'ai pu trouver sur le net

rien de tout ca ne marche
Alors, c'est quoi la synthaxe exacte ? :D
A voir également:

9 réponses

faboons Messages postés 269 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 22 janvier 2024 50
Modifié par faboons le 21/10/2010 à 14:22
Salut essaie juste en supprimant les noms de champs, comme ça :

$bdd->exec('INSERT INTO yob_users VALUES(\'Moi\', \'toto\')') or die(print_r($bdd->errorInfo()));



@ pluche.
Fab.
0
ben ok je m'y connais ptet pas beaucoup mais je suis quand meme sur que si j'enleve les noms de champs, il va pas les trouver tout seul et il va m'écrire ca n'importe ou.

j'ai peut etre mal expliqué mon probleme

$bdd->exec('INSERT INTO yob_users(username, password) VALUES(\'Moi\', \'toto\')');

avec ca ca marche si je veux écrire comme username "moi" et comme password "toto"

seulement ce que je veux écrire en username c'est la variable contenue dans $username
et dans password la valeur contenue dans $pass

dans mon exemple j'ai mis
VALUES(\'Moi\', \'toto\')
c'était juste parce que je sais pas quoi mettre dedans vu que je connais pas la syntaxe
0
faboons Messages postés 269 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 22 janvier 2024 50
Modifié par faboons le 21/10/2010 à 15:30
Salut,

Si tu as 2 champs dans ta table il n'est pas besoin de spécifier tes noms de colonnes.
Si tu en as plus tu as raison.

Fais un echo $pass; et un echo $username; pour vérifier qu'elles ne sont pas vides.

Et à la fin de ta requête ajoute :

or die(print_r($bdd->errorInfo()));


Car si ça ne marche pas il y a forcément un message d'erreur !!!
0
Salut

justement c'est ca qui ne marche pas, d'ou m'a question sur la syntaxe parce que c'est vraisemblablement un probleme de syntaxe

la ligne
$bdd->exec('INSERT INTO yob_users(username, password) VALUES('".$username."', '".$password."')');


n'écrit rien dans la base de donnée
et oui en effet j'ai pas précisé mais y'a plus de champs dans ma base (une dixaine) mais seul username et password m'interesse


Merci en tous cas pour tes réponses
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
faboons Messages postés 269 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 22 janvier 2024 50
21 oct. 2010 à 15:33
J'ai édité mon message au-dessus car je m'étais planté !
Essaie de faire ce que je t'y dis
0
faboons Messages postés 269 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 22 janvier 2024 50
Modifié par faboons le 21/10/2010 à 15:39
Peut-être les guillements, essaie :

$bdd->exec("INSERT INTO yob_users(username, password) VALUES ('$username','$pass')");
0
Alors ca ne marche pas et pas de messages d'erreur

Pour récapitulatif voila mon code de test entier

<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=db', 'root', '');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}

$username = "nom";
$password = "mdp";

$pass = sha1($password);



$bdd->exec('INSERT INTO yob_users(username, password) VALUES('".$username."', '".$password."')') or die(print_r($bdd->errorInfo()));

echo 'utilisateur ajouté';
echo $pass;
echo $username; 
?>


quand j'enleve la requete bdd->exec j'ai bien les echo qui me renvoie "mdp" en sha1 et "nom" en username, sinon c'est page blanche
0
Oui c'est ca ca marche !!! (sans les guillemets donc)

c'est curieux parce que je pensais avoir essayé ca des dizaines de fois

En tous cas merci pour ton aide
0
faboons Messages postés 269 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 22 janvier 2024 50
21 oct. 2010 à 15:49
Salut,

De rien.

@ pluche.
0