[RESOLU] Liaison bdd à son code php

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] Liaison bdd à son code php

Re: [RESOLU] Liaison bdd à son code php

par Merydian » 01 mars 2022, 18:05

Effectivement ça fonctionne merci beaucoup sans aucun caractère sur T_mails et sur id_mails :) !!

Re: Liaison bdd à son code php

par ynx » 01 mars 2022, 13:42

Ca doit être les quotes ' autour du nom de la colonne id ou id_mails qui doit poser problème dans ta requête DELETE.

Fais comme pour tes autres requêtes :
- utilise aucun caractère ou des backticks ` pour les noms des tables et colonnes
- utilise les quotes ' uniquement pour les valeurs de type string (comme pour l'adresse mail dans ta requête INSERT)

Re: Liaison bdd à son code php

par Merydian » 28 févr. 2022, 18:26

Teste ta requête dans phpMyAdmin, et vérifie le format de tes champs de bdd, car non ce n'est pas un format INT à priori
''SELECT * FROM `T_mails` WHERE id_mails = 20''

J'ai testé une requête comme ça (je sais pas si c'est correct) mais en tout cas après avoir fait ça j'ai bien mon adresse mail avec mon id (20) qui s'affiche, la requête a fonctionné pour le coup.

Re: Liaison bdd à son code php

par Merydian » 28 févr. 2022, 17:47

Teste ta requête dans phpMyAdmin, et vérifie le format de tes champs de bdd, car non ce n'est pas un format INT à priori
Est-ce que tu aurais un lien qui m'explique comment faire ? Car je sais pas quoi insérer dans la console pour tester ma commande :(

Re: Liaison bdd à son code php

par @rthur » 28 févr. 2022, 17:06

Teste ta requête dans phpMyAdmin, et vérifie le format de tes champs de bdd, car non ce n'est pas un format INT à priori

Re: Liaison bdd à son code php

par Merydian » 28 févr. 2022, 16:52

id_mails ou id ? Car dans ta requête SQL tu la nommes juste 'id'
// Supprimer des utilisateurs
$sql = "DELETE FROM `T_mails` WHERE 'id_mails' = 20";
$requete = $db->query($sql);
Bah je m'étais trompé sur l'autre post mais ça me met toujours une erreur (Je suis sur que sur ma bdd c'est id_mails)

Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: 'id_mails' in

Re: Liaison bdd à son code php

par @rthur » 28 févr. 2022, 16:30

id_mails ou id ? Car dans ta requête SQL tu la nommes juste 'id'

Re: Liaison bdd à son code php

par Merydian » 28 févr. 2022, 15:42

Bonjour,

La colonne id de la table T_mails est bien de type int dans la base de données ?
Hello oui mon id_mails est bien de type int

Re: Liaison bdd à son code php

par ynx » 25 févr. 2022, 19:13

Bonjour,

La colonne id de la table T_mails est bien de type int dans la base de données ?

Re: Liaison bdd à son code php

par Merydian » 25 févr. 2022, 18:05

Est-ce que quelqu'un pourrait m'aider pour que quand je veuille supprimer 1 utilisateur dans ma base de données en fonction de son id que ça le fasse et non pas que ça supprime tous mes utilisateurs dans ma base de donnée. ?
// Supprimer des utilisateurs
$sql = "DELETE FROM `T_mails` WHERE 'id' > 3";
$requete = $db->query($sql);
Car cela me donne un message d'erreur.

Re: Liaison bdd à son code php

par Merydian » 24 févr. 2022, 18:29

3 n'est pas une chaine de caractère mais un nombre donc pas de guillemets ;-)
Sauf que si je mets pas de guillemets ça me met l'erreur justement :(

ncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: 'id' in /Users/dylanmartini/Dropbox/Mac/Desktop/Développement/ForumMaccaud/PHP/JoinBDD.php:53 Stack trace: #0 /Users/dylanmartini/Dropbox/Mac/Desktop/Développement/ForumMaccaud/PHP/JoinBDD.php(53): PDO->query('DELETE FROM `T_...') #1 /Users/dylanmartini/Dropbox/Mac/Desktop/Développement/ForumMaccaud/HTML/Inscription.php(28): include('/Users/dylanmar...') #2 {main} thrown in /Users/dylanmartini/Dropbox/Mac/Desktop/Développement/ForumMaccaud/PHP/JoinBDD.php on line 53
<?php


error_reporting(E_ALL); 
ini_set("display_errors", 1);

//constantes d'environnement

define("DBHOST", "localhost");
define("DBUSER", "root");
define("DBPASS", "root");
define("DBNAME", "Forum");

//DSN de connexion
$dsn = "mysql:dbname=".DBNAME.";host=".DBHOST;

//Connexion à la bdd
try{
    // On instancie PDO
    $db = new PDO($dsn, DBUSER, DBPASS);

    // On envoie les données en UTF8
    $db->exec("SET NAMES utf8");
    
    // On définit le mode de 'Fetch'par défaut
    $db->setAttribute
    (PDO::ATTR_DEFAULT_FETCH_MODE,
     PDO::FETCH_ASSOC);

}catch(PDOException $e){
    die("Erreur:".$e->getMessage());
}


// Ici on est connectés à la base
// On peut récupérer la liste des utilisateurs(T_mails)
$sql = "SELECT * FROM `T_mails`";

// On exécute la requête
$requete = $db->query($sql);

// On récupère les données (Fetch ou FetchAll)
$requete = $requete->fetch();

// Ajouter un utilisateur
$sql ="INSERT INTO `T_mails`(`adresse_mails`) VALUES ('[email protected]')";
$requete = $db->query($sql);



// Supprimer des utilisateurs
$sql = "DELETE FROM `T_mails` WHERE 'id' > 12";
$requete = $db->query($sql);

//Savoir le nombre de lignes qui ont été supp
echo $requete->rowCount();

echo "<pre>";   
var_dump($requete);
echo "</pre>";
?>

Re: Liaison bdd à son code php

par @rthur » 24 févr. 2022, 18:16

3 n'est pas une chaine de caractère mais un nombre donc pas de guillemets ;-)

Re: Liaison bdd à son code php

par Merydian » 24 févr. 2022, 17:34

Tu as des problèmes de guillemets pour tes chaines de caractères qui doivent être ' et non `

Bon dû coup j'ai bien changé les guillemets comme tu m'as dit sauf que j'ai un petit soucis maintenant c'est que j'ai mis que tous les id supérieurs à 3 sont supprimés mais c'est que ça me supprime TOUS mes id même le 1 et 2 haha. Comment faire pour que ça supprime uniquement ceux supérieurs à 3
<?php

//constantes d'environnement

error_reporting(E_ALL); 
ini_set("display_errors", 1);


define("DBHOST", "localhost");
define("DBUSER", "root");
define("DBPASS", "root");
define("DBNAME", "Forum");

//DSN de connexion
$dsn = "mysql:dbname=".DBNAME.";host=".DBHOST;

//Connexion à la bdd
try{
    $db = new PDO($dsn, DBUSER, DBPASS);

    $db->exec("SET NAMES utf8");
    
    $db->setAttribute
    (PDO::ATTR_DEFAULT_FETCH_MODE,
     PDO::FETCH_ASSOC);

}catch(PDOException $e){
    die("Erreur:".$e->getMessage());
}

$sql = "SELECT * FROM `T_mails`";
$requete = $db->query($sql);

$requete = $requete->fetch();

$sql ="INSERT INTO `T_mails`(`adresse_mails`) VALUES ('[email protected]')";
$requete = $db->query($sql);

$sql = "DELETE FROM `T_mails` WHERE 'id' > '3'";
$requete = $db->query($sql);


echo "<pre>";   
var_dump($requete);
echo "</pre>";
?>


Re: Liaison bdd à son code php

par @rthur » 24 févr. 2022, 16:43

Tu as des problèmes de guillemets pour tes chaines de caractères qui doivent être ' et non `

Re: Liaison bdd à son code php

par Merydian » 24 févr. 2022, 15:25

Hello alors, lorsque je veux insérer un nouvel utilisateur avec ''INSERT INTO'' bah moi ma page devient blanche
tutoriels/page-blanche-script-php-comme ... 73178.html
Hello alors j'ai fais ce que tu m'as dit ! Et dû coup la première erreur je comprends pas trop ?
Et les autres c'est parce que mes fichiers sont enregistrés dans DROPBOX ? De ce que j'ai entendu cela pouvait poser quelque soucis non ?


Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column '[email protected]' in 'field list' in /Users/dylan/Dropbox/Mac/Desktop/Développement/ForumMaccaud/PHP/JoinBDD.php:37 Stack trace: #0 /Users/dylan/Dropbox/Mac/Desktop/Développement/ForumMaccaud/PHP/JoinBDD.php(37): PDO->query('INSERT INTO `T_...') #1 /Users/dylan/Dropbox/Mac/Desktop/Développement/ForumMaccaud/HTML/Inscription.php(28): include('/Users/dylanmar...') #2 {main} thrown in /Users/dylan/Dropbox/Mac/Desktop/Développement/ForumMaccaud/PHP/JoinBDD.php on line 37