[RESOLU] caractère spéciaux dans sauvegarde de bdd phpmyadmin

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] caractère spéciaux dans sauvegarde de bdd phpmyadmin

Re: [RESOLU] caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 18 mai 2023, 21:12

d'accord merci beaucoup je vais aller voir ça

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par two3d » 18 mai 2023, 21:08

Bon je viens de faire un test: j'ai modifier ma bdd pour mettre l'interclassement en utf8mb4 et ça marche !!! Merci beaucoup pour ton aide !!!
Je suis quand même preneur là dessus (on ne dit jamais non à l'apprentissage)
Souvent dans la doc ya les deux exemples, procédural et object en PHP

L'article le plus connu sur l'explication des codages des caractères est cet article (du moins, pour moi) : https://www.joelonsoftware.com/2003/10/ ... o-excuses/

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 18 mai 2023, 12:16

Bon je viens de faire un test: j'ai modifier ma bdd pour mettre l'interclassement en utf8mb4 et ça marche !!! Merci beaucoup pour ton aide !!!
À vrai dire c'est un code que j'ai trouver sur internet (bien qu'un peu modifier) mais du coup tu viens de m'apprendre qu'il existait un style procédural et un autre orienté objet. Du coup comment je dois modifier comment pour unifier le style ?
Je suis quand même preneur là dessus (on ne dit jamais non à l'apprentissage)

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 18 mai 2023, 12:05

Lorsque je regarde l'interclassement de ma bdd elle est en 'utf8_general_ci' donc il ne faut pas définir le mysqli_set_charset à utf8 ? Au lieu de utf8mb4 ?

À vrai dire c'est un code que j'ai trouver sur internet (bien qu'un peu modifier) mais du coup tu viens de m'apprendre qu'il existait un style procédural et un autre orienté objet. Du coup comment je dois modifier comment pour unifier le style ?

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par ynx » 18 mai 2023, 11:55

Le problème semble bien venir du charset de ta connexion à la bdd.
Pour rappel, évite de mélanger le style procédural et le style orienté objet, choisi et utilise une des deux syntaxes.

En testant ton code après avoir défini le charset de la connexion à la bdd, les caractères spéciaux qui s'affichaient sous la forme "?" sont désormais affichés correctement :
$con = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
mysqli_set_charset($con, 'utf8mb4');

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 18 mai 2023, 10:35

Je viens de regarder et j'ai les "?" dès la récupération dès données cela n'apparait pas lors de l'écriture du document mais avant

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par two3d » 18 mai 2023, 08:40

sinon, il faut que tout soit en utf8, encodage du fichier php, sortie de l'html ...
Si t'insère ton caractère spécial directement depuis la BDD (bouton "insérer" depuis ton SGBD) il devient aussi "?"

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 17 mai 2023, 23:27

wamp = windows apache mysql php
donc mysql est bien installé.

sinon, il faut que tout soit en utf8, encodage du fichier php, sortie de l'html ...
ah et bien ça doit être moi qui n'y arrive juste pas à chaque fois que j’essaie j'ai le droit à des erreurs (comme quoi je rentre des fonctions inconnues et en plus je ne trouve aucune documentation qui explique de A à Z comment faire fonctionner cet outil.

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par two3d » 17 mai 2023, 23:03

wamp = windows apache mysql php
Merci pour l'info ;)

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par or 1 » 17 mai 2023, 22:26

wamp = windows apache mysql php
donc mysql est bien installé.

sinon, il faut que tout soit en utf8, encodage du fichier php, sortie de l'html ...

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 17 mai 2023, 19:26

L'outil mysqldump est automatiquement installé lors de l'installation de Mysql.
Si tu as installé Mysql en local, tu dois déjà avoir mysqldump aussi en local que tu peux donc utiliser sans internet.
mysqldump s'utilise en ligne de commande (dans un Terminal ou Invité de commandes).
Alors je n'ai pas installer Mysql j'ai installer wampserver donc ça n'a pas l'air d'être pris en compte dedans (ou sinon je ne trouve pas comment l'utiliser)

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par ynx » 17 mai 2023, 19:16

L'outil mysqldump est automatiquement installé lors de l'installation de Mysql.
Si tu as installé Mysql en local, tu dois déjà avoir mysqldump aussi en local que tu peux donc utiliser sans internet.
mysqldump s'utilise en ligne de commande (dans un Terminal ou Invité de commandes).

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 17 mai 2023, 17:46

D'après les exemples de la doc, il faudrait plutôt utiliser $mysqli->set_charset() en orienté objet ou mysqli_set_charset() en procédurale.
https://www.php.net/manual/fr/mysqli.construct.php
J'ai essayer les deux et ils ne marchent pas non plus.
Si c'est pour faire une sauvegarde de la bdd, tu pourrais p-e utiliser l'outil mysqldump à la place de ton script php.
https://rdr-it.com/sauvegarder-vos-base ... mysqldump/
Alors le but c'est de pouvoir utiliser le site que je monte en local sans internet donc si j'utilise l'outil mysqldump je devrais obligatoirement utiliser internet lors de la sauvegarde non ?

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par minwolf999 » 17 mai 2023, 17:42

Excuse moi, c'est :
mysqli_query($con, "SET NAMES utf8");
Alors je viens d'essayer et cela ne marche toujours pas

Re: caractère spéciaux dans sauvegarde de bdd phpmyadmin

par ynx » 17 mai 2023, 13:54

D'après les exemples de la doc, il faudrait plutôt utiliser $mysqli->set_charset() en orienté objet ou mysqli_set_charset() en procédurale.
https://www.php.net/manual/fr/mysqli.construct.php

Si c'est pour faire une sauvegarde de la bdd, tu pourrais p-e utiliser l'outil mysqldump à la place de ton script php.
https://rdr-it.com/sauvegarder-vos-base ... mysqldump/