Guillemets PDO php MySQL

Par Nic1101, il y a 14 ans


Bonjour, je veux insérer un texte avec TinyMCE dans une base de données et quand les personnes font un ' ou un ", la requête SQL affiche ceci :

Warning: PDO::query() [pdo.query]: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/p>','')' at line 1 in C:\wamp\www\Projects\Sonia_Seguin\admin\publier_2.php on line 10

Pourquoi ?

Merci d'avance pour ceux qui vont me répondre.

Nic1101

7 réponses

Flohw, il y a 14 ans

on peut avoir la requete ?
tu n'aurais pas oublié un addslashez ou un truc dans ce gout la ?

Nic1101, il y a 14 ans

Là voilà :

<?php
if(isset($_POST)){
    //Traitement
    $titre = $_POST'titre'];
    $contenu = $_POST'contenu'];
    $auteur = $_POST'auteur'];

    global $PDO;
    $sql = "INSERT INTO articles(titre,contenu,auteur) VALUES ('$titre','$contenu','$auteur') ";
    $req = $PDO->query($sql);
}
?>
Flohw, il y a 14 ans

voila, il manque les addslashes.
sinon, mets des antislash dans ton champ 'contenu' devant les guillement simple. par contre je te deconseille formellement de mettre ce code en ligne !

Nic1101, il y a 14 ans

@jbou43 : J'y arrivais à la sécurité c'est ma prochaine étape !
@flohw : Merci, j'aisserai avec les addslashes.

Nic1101

Nic1101, il y a 14 ans

Eh.. Je viens d'essayer les addslashes et de mettre des antislahes et ça marche toujours pas...<br />
On pourrais me fournir un code ? J'en ai besoin pour Lundi.

Merci d'avance pour celui qui me fournira un code !

Nic1101

Nic1101, il y a 14 ans

OK c'est parfait j'ai réussi, j'ai mis les guillemets au niveau de la requête et non pas au niveau de définition des variables ! Voici maintenant mon nouveau code :

<?php
if(isset($_POST)){
    //Traitement
    $titre = addslashes($_POST'titre']);
    $contenu = addslashes($_POST'contenu']);
    $auteur = addslashes($_POST'auteur']);
    global $PDO;
    $sql = "INSERT INTO articles(titre,contenu,auteur) VALUES ('$titre','$contenu','$auteur')";
    $req = $PDO->query($sql);
    header("Location:index.php?p=home&pub=1");
}
?>