Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'écriture dans la base de donnée !

Sujet résolu
24 juillet 2016 à 18:41:31

Bonjour tout le monde !

Gros problème dont je n'arrive pas à me sortir, malgré le fait que j'ai relu mon code une bonne dizaine de fois, tenté des changements, etc... Rien n'y fait. 
J'ai un formulaire dont le traitement permet d'écrire les données dans une base de donnée sous PhpMyAdmin. J'en ai déjà fait deux sur ce site, qui ont tout à fait bien fonctionné. Cette fois-ci, il n'y a apparemment aucune raison que ça ne marche pas :/ Je ne comprend pas du tout, si quelqu'un aurait une aide...

Voici mon code :

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

$req = $bdd->prepare('INSERT INTO orders(date, user, steam_url, steam_id, ip, amount, order) VALUES(:date, :user, :steam_url, :steam_id, :ip, :amount, :order)');
$req->execute(array(
	'date' => $_POST['date'],
	'user' => $_POST['user'],
	'steam_url' => $_POST['steam_url'],
	'steam_id' => $_POST['steam_id'],
	'ip' => $_POST['ip'],
	'amount' => $_POST['amount'],
	'order' => $_POST['order']
	));
	
echo($_POST['date'] . '</br>');
echo($_POST['user'] . '</br>');
echo($_POST['steam_url'] . '</br>');
echo($_POST['steam_id'] . '</br>');
echo($_POST['ip'] . '</br>');
echo($_POST['amount'] . '</br>');
echo($_POST['order'] . '</br>');


echo 'Order added !';

?>

Les dernières lignes "echo" permettent simplement d'afficher les variables transmises par le formulaire, je voulais vérifier que le problème ne vienne pas de là... 

J'ai réutilisé la rédaction de Matthieu Nebra dans son tuto sur PHP : Elle a fonctionné toujours, sauf cette fois... Il doit y avoir une erreur toute bête, mais je viens de passer l'aprèm à la chercher sans succès...

Sachant que quand je valide le formulaire, il n'y a aucun message d'erreur, il y a bien écrit "Order Added !" mais quand je vais sur PHPMyAdmin, rien du tout : 

Merci d'avance à toute personne pouvant apporter son aide ! N'hésitez pas à demander des renseignements supplémentaires

  • Partager sur Facebook
  • Partager sur Twitter

🚀 Software Engineer | https://lyro.fr

24 juillet 2016 à 18:46:20

Bonjour,

Commence par activer les erreurs pdo_mysql cela peut donner une piste, probablement un champ qui ne reçoit pas la valeur attendue.

http://php.net/manual/fr/pdo.error-handling.php

  • Partager sur Facebook
  • Partager sur Twitter
Merci de signaler votre sujet résolu, cela nous évite des pages de lecture inutile pour arriver au bout de 15 réponses sur la dernière qui dit "merci problème résolut!"
24 juillet 2016 à 18:47:56

ORDER est un mot-clé réservé, chose qui ne serait pas passée inaperçue si les erreurs étaient effectivement activées comme ça devrait l'être. Ecrire `order` mais il serait préférable de renommer la colonne pour éviter que ça ne plante au prochain oubli des backticks.

il n'y a aucun message d'erreur

Encore faut-il demander à PDO d'en émettre une (voir lien ci-dessus) puisque par défaut, doit-on encore le rappeler, il est silencieux.

il y a bien écrit "Order Added !"

Ton echo ne prouve rien, il n'y a pas de condition ou autre. Ca aurait eu un sens si le mode d'erreur de PDO était basculé sur celui reposant sur les exceptions ou tu avais au moins écrit :

$inserted = $req->execute(array(/* ... */));
if ($inserted) {
    echo "Order Added !";
}

-
Edité par julp 24 juillet 2016 à 18:55:50

  • Partager sur Facebook
  • Partager sur Twitter
24 juillet 2016 à 18:49:49

Salut,

pour commencer active les erreurs PDO (ma signature).

Puis je dirais que tu as nommé une colonne par un mot réservé (order).

EDIT: t'es trop rapide julp ;)

EDIT2 : j'ai pas vu mais je me suis fait doublement grillé

-
Edité par b-dav 24 juillet 2016 à 18:51:25

  • Partager sur Facebook
  • Partager sur Twitter
Erreur PDO - Installation Wamp - Docs PHP et MYSQL.
24 juillet 2016 à 18:50:37

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'order) VALUES('24-07-2016 18:49:06', 'LYRO', 'http://steamcommunity.com/id/Lyro1' à la ligne 1 in C:\wamp\www\CSGOKeyStore\register_order.php on line 21


EDIT : J'ai modifié "order" en "order_txt", mais maintenant j'ai cela : 

PDOException: SQLSTATE[42S22]: Column not found: 1054 Champ 'steam_id' inconnu dans field list in C:\wamp\www\CSGOKeyStore\register_order.php on line 21

-
Edité par Lyro 24 juillet 2016 à 18:56:21

  • Partager sur Facebook
  • Partager sur Twitter

🚀 Software Engineer | https://lyro.fr

24 juillet 2016 à 18:58:44

On te traduit le message d'erreur : ta table n'a pas de colonne nommée steam_id

-
Edité par julp 24 juillet 2016 à 19:14:36

  • Partager sur Facebook
  • Partager sur Twitter
24 juillet 2016 à 19:12:25

J'ai modifié "order" en "order_txt", mais maintenant j'ai cela : 

PDOException: SQLSTATE[42S22]: Column not found: 1054 Champ 'steam_id' inconnu dans field list in C:\wamp\www\CSGOKeyStore\register_order.php on line 21

  • Partager sur Facebook
  • Partager sur Twitter

🚀 Software Engineer | https://lyro.fr

24 juillet 2016 à 19:23:35

re,

julp a écrit:

On te traduit le message d'erreur : ta table n'a pas de colonne nommée steam_id

-
Edité par julp il y a 8 minutes



  • Partager sur Facebook
  • Partager sur Twitter
Merci de signaler votre sujet résolu, cela nous évite des pages de lecture inutile pour arriver au bout de 15 réponses sur la dernière qui dit "merci problème résolut!"
24 juillet 2016 à 19:23:35

julp a écrit:

On te traduit le message d'erreur : ta table n'a pas de colonne nommée steam_id

-
Edité par julp il y a 8 minutes


EDIT: Arff... Même comme ça, grillé... ;)

-
Edité par b-dav 24 juillet 2016 à 19:24:09

  • Partager sur Facebook
  • Partager sur Twitter
Erreur PDO - Installation Wamp - Docs PHP et MYSQL.
24 juillet 2016 à 19:43:54

Merci pour vos réponses ! Problème résolu, merci tartanpion :)
  • Partager sur Facebook
  • Partager sur Twitter

🚀 Software Engineer | https://lyro.fr

25 juillet 2016 à 2:56:47

Bonjour,

Veuillez mettre le sujet en résolu SVP si tel est le cas

  • Partager sur Facebook
  • Partager sur Twitter
L'important ce n'est pas d'être grand mais c'est être à la hauteur