[PHP\MySQL] Pb synthaxe Insert into values [Résolu/Fermé]

Signaler
-
Messages postés
266
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 novembre 2020
-
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

9 réponses

Messages postés
266
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 novembre 2020
48
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.
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
Messages postés
266
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 novembre 2020
48
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 !!!
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
Messages postés
266
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 novembre 2020
48
J'ai édité mon message au-dessus car je m'étais planté !
Essaie de faire ce que je t'y dis
Messages postés
266
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 novembre 2020
48
Peut-être les guillements, essaie :

$bdd->exec("INSERT INTO yob_users(username, password) VALUES ('$username','$pass')");
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
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
Messages postés
266
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
13 novembre 2020
48
Salut,

De rien.

@ pluche.