Erreur mysql_query("INSERT INTO ... Smiley

Fermé
speedy - 23 juin 2017 à 23:10
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 24 juin 2017 à 15:21
Bonjour,
Quand j'installe mon script avec un bout de code pour smiley tout s'installe correctement dans ma base phpMyAdmin 3.1.5 (Chez free).
Mais quand je tape mon code smiley j'obtient une ligne de code au lieu d'un image (Smiley).

Erreur dans mon <textarea> </textarea> :
IMAGE.gif<img src=\"$fullurl/smilies/01.gif\" alt=\"\" border=\"0\" />')");

Au lien de 01.gif Texte ou autre

Code dans .php (Installation)
mysql_query("INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':'(','<img src=\"$fullurl/smilies/01.gif\" alt=\"\" border=\"0\" />')");
mysql_query("INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':$:','<img src=\"$fullurl/smilies/02.gif\" alt=\"\" border=\"0\" />')");
mysql_query("INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':/:','<img src=\"$fullurl/smilies/03.gif\" alt=\"\" border=\"0\" />')");
mysql_query("INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES('^^','<img src=\"$fullurl/smilies/04.gif\" alt=\"\" border=\"0\" />')");


Code représentation des smileys :
Smiley 01.gif = :'(
Smiley 02.gif = :$
Smiley 03.gif = :/
Smiley 04.gif = ^^


Cordialement,

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
24 juin 2017 à 00:32
Bonjour,

1 - Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

Si tu choisis PDO, pense à activer la gestion des erreurs : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

2 - Regarde bien tes requêtes
par exemple la première
mysql_query("INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':'(','<img src=\"$fullurl/smilies/01.gif\" alt=\"\" border=\"0\" />')"); 

Du moins juste le sql :
INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':'(','<img src=\"$fullurl/smilies/01.gif\" alt=\"\" border=\"0\" />')


Ne vois tu pas le souci ? ( un indice .... regarde les apostrophes )

NB: Si tu passes à mysqli ou pdo ... tu pourras utiliser ce qu'on appelle les requêtes préparées. Ca évite ce genre de souci.

NB² : En BDD .. tu n'as pas besoin de stocker les balises IMG ....
Seuls le "nom" du fichier importe.
Moi je ne mettrai que :
INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':\'(','$fullurl/smilies/01.gif')

2
Bonjour jordane45,
Merci pour toutes ces informations je vais lire attentivement tes liens malgré que je ne comprends rien à y mysqli ou à PDO.
Il faut juste supprimer mysql_query et mettre juste mysqli ?

Remarque : je vais lire attentivement tes liens :)

Pour ce qui est de l'apostrophe dans le smiley j'avais remarqué j'ai mis un anti-slash \ rien n'a changé.

là où je ne comprends pas c'est que ça ne fonctionne pas uniquement pour ces 4 smileys avec l'anti slash ou sans anti slash (\) :: => :$ => :/ => ^^ et :'( avec ou sans :\'(

Ces les seules 4 smileys qui ne fonctionne pas les 12 autres aucun souci.


Cordialement,
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > speedy
24 juin 2017 à 15:21
Place la requête dans une variable et fais en un echo.
Ensuite... tu prends le résultat du echo ... et tu le colles directement dans phpmyadmin pour tester la requête... tu verras le message d'erreur.

$sql = "INSERT INTO ".$so_prefix."_smilies (code,smilie) VALUES(':'(','".$fullurl."/smilies/01.gif' ) ";
echo " La requete est : ".$sql;
mysql_query($sql);

0