[RESOLU] 'INSERT INTO VALUE' Ne semble pas fonctionner.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] 'INSERT INTO VALUE' Ne semble pas fonctionner.

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par Karl_R » 02 juin 2021, 16:13

Salut @rthur,

Ah je doit avouer que c'est un super bon conseille je te remercie :)

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par @rthur » 01 juin 2021, 16:27

Hello,
Un conseil, active la gestion des erreurs de PDO sur PDO::ERRMODE_WARNING quand tu développes, ça te permettra d'avoir des messages d'erreur visibles quand il y a un problème dans tes requêtes ou lors de la connexion :D
https://www.php.net/manual/fr/pdo.error-handling.php

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par Karl_R » 01 juin 2021, 12:44

Je te remercie pour ton aide Shadowwera j'ai trouver la solution a mon soucis!

C'etais idiot de ma part. dans ma tete mon user_id = int mais avec le code que j'ai ecrit il a pris le pseudonyme, du coup j'ai changer le int a Varchar et tout fonctionne, j'ai meme changer nom NOW() a date qui est plus logique en soit.

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par Karl_R » 01 juin 2021, 12:11

Alors avec une requête toute simple comme :

$req = $connection-> prepare("INSERT INTO 'posts' (bank_id) VALUES (?)");
$data = $req->execute([$_COOKIE['acteur_id']]);

Ou mon $_COOKIE['acteur_id'] est égale a 1

Ne marche pas non plus. J'ai peut être survole quelque chose d'important mais je ne vois pas quoi.

Edit: J'avais oublier un petit apostrophe a la fin de 'posts'
Edit : Ne pas mettre d'apostrophe après INTO.

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par Shadowwera » 01 juin 2021, 12:03

Que met tu à la place de la date du coup dans ta requête ? Car ton champs est NOT NULL donc si tu ne le précise pas la requête aura une erreur et rien se sera ajouté en BDD

En faisant une requete simple, sans variable, l'INSERT fonctionne t'il ?

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par Karl_R » 01 juin 2021, 12:00

Salut Shadowwera,

Merci pour ta réponse, j'ai tester de remplacer du coup mon NOW() avec date("Y-m-d") mais cela ne marche pas non plus.

j'ai essayer d'enlever totalement du coup la date juste pour voire si l'insert marche, mais du coup toujours pas. j'ai retester de voire si les acteur_id, comment et author marche biens avec Vardump et ils retourne positif du coup je me demande si c'est pas un soucis avec ma BDD.

Re: 'INSERT INTO VALUE' Ne semble pas fonctionner.

par Shadowwera » 01 juin 2021, 11:46

Salut Karl_R,

Je peux me tromper étant assez nouveau également, mais il me semble que votre champs "date_created" est au format date. Or, vous essayez de lui passer la fonction now(), qui retourne un timestamp (Date + heure:minutes:secondes) et non une date. Si vous essayé de rentré ce genre de donnée manuellement, Mysql vous retournerais une erreur.

Pour passer correctement une date, passer plutôt par la fonction Date : date("Y-m-d")

EDIT :
Le format date de Mysql stocke une date au format AAAA-MM-JJ (Année-Mois-Jour)
Si vous ne spécifiez pas de timezone, cela prendra automatiquement celui de l'utilisateur. Si vous voulez forcer la timezone, procédez comme ceci :
date_default_timezone_set('Europe/Paris');
$date = date('Y-m-d');

'INSERT INTO VALUE' Ne semble pas fonctionner.

par Karl_R » 01 juin 2021, 11:35

Bonjour,
Je suis une formation sur HTML,CSS et le PHP depuis 2 mois donc je suis assez nouveau.
J'essaye d'insérer un commentaire d'un utilisateur depuis un formulaire en l'insérant dans une BDD 'posts' avec les ID de mon acteur via $_COOKIES. J'ai tester les valeurs avec Vardump() pour vérifier si ils récupère bien toutes info (qui est le cas) mais les données ne veulent pas s'enregistrer, Jai regarder sur différents forums et cela fait déjà 2 jours que je cherche sans repis.

Si vous avez une idée ou même juste me diriger sans la bonne direction je serais très reconnaissant.

<?php
  include_once('session.php');
  // Insert new comment:
  if (isset($_COOKIE['acteur_id'])) {
     echo "value is :" . $_COOKIE['acteur_id'];
    try {
      if ($_POST['author'] == '' || $_POST['date'] == '' || $_POST['comment'] == '')  {
        throw new Exception("veuillez remplir tous les champs avant d'envoyer");
      } else {
        include_once('config.php');

        $req = $connection-> prepare("INSERT INTO 'posts (bank_id, date_created, comment, user_id) VALUES (?, NOW(), ?, ?)");
        $data = $req->execute([$_COOKIE['acteur_id'], $_POST['comment'], $_POST['author']]);
        header('Location: acteur.php?acteur='. $_COOKIE['acteur_id'] .'');
        exit();
      }
    } catch (Exception $e) {
      $_SESSION['error'] = $e->getMessage();
      header('Location: acteur.php?acteur='. $_COOKIE['acteur_id'] .'');
      exit();
    }
  }
?>
La BDD ressemble a ceci :



1 bank_id int(11) Non Aucun(e)
2 date_created date Non Aucun(e)
3 comment varchar(255) latin1_swedish_ci Non Aucun(e)
4 user_id int(11) Non Aucun(e)

Je vous remercie.