WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.adsl.proxad.net)
Date: 20 December 2020 à 18:18

Bonjour,

Je reviens vers vous pour un problème de transition de mon ancien wamperver vers mon tout nouveau wampserver sous Windows 10.
Je suis toujours un newbie!

J'ai bien installé wamperver dernière version W10 64 bits, j'ai téléchargé ma BDD précédente.

Maintenant dernière ligne droite, je dois actualiser ma BDD en chargeant des fichiers csv UTF 8 avec séparateur ";"

Je précise que rien, absolument rien n'a changé dans mes fichiers à charger (à part des données actualisées).
Une précision tout de même (au cas où) je n'utilise plus Excel 2007 puis notepad++ (pour convertir en UTF 8) mais Excel 2019 et toujours notepad++

J'ai plusieurs requêtes SQL du même type qui marchaient nickel auparavant, mais maintenant elles ne marchent plus.

Voici la requête type telle que copiée par wampserver (ma propre requête que j'ai archivée se termine par un point-virgule):

LOAD DATA LOCAL INFILE 'D:/blabla/Bibliomysql.csv' REPLACE INTO TABLE bibliobase
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES

MySQL a répondu : Documentation
#2000 - LOAD DATA LOCAL INFILE is forbidden, check mysqli.allow_local_infile

Pouvez-vous m'aider à corriger pour que cela marche à nouveau?

Merci d'avance

Bien cordialement

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 20 December 2020 à 19:18

Bonsoir,

MySQL a évolué et les directives dites sécuritaires aussi.
Documentation MySQL, faites une recherche sur LOAD DATA INFILE et trouvez :
6.1.6 Security Considerations for LOAD DATA LOCAL

MySQL permet aux clients de restreindre les opérations de chargement de données locales aux fichiers situés dans un répertoire désigné.
Restricting Files Permitted for Local Data Loading

Dans le fichier my.ini, il y a :
secure_file_priv="C:/wamp64/tmp"

Ce qui veut dire que les fichiers à importer doivent être mis dans ce dossier.

Le premier réflexe doit toujours être RTFM.

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.adsl.proxad.net)
Date: 21 December 2020 à 10:37

Bonjour Otomatic,


Merci de la réaction rapide.


J'ai vite imaginé que RTFM était un acronyme pour Manuel de Formation, mais je n'ai aucune connaissance technique Mysql sauf un processus que je reitère "automatiquement".


J'ai essayé de regardé le my.ini et il y a effectivement:
secure_file_priv="D:/wamp64/tmp"

Et aussi des réglages de mémoire, je crois:
table_definition_cache = 600

sort_buffer_size = 2M
net_buffer_length = 8K
read_buffer_size = 2M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 64M

Ma BDD fait autour de 28 Mo avec une vingtaine de tables.

Dois-je changer d'autres réglages?


J'ai testé :


LOAD DATA LOCAL INFILE 'D:/wamp64/tmp/Bibliomysql.csv' REPLACE INTO TABLE bibliobase
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;


Mais j'ai encore:
#2000 - LOAD DATA LOCAL INFILE is forbidden, check mysqli.allow_local_infile

Sur Internet, en Français je n'ai trouvé qu'un seul fil sur un autre forum mais il date de... 2013, donc hors actus.


Pouvez-vous me piloter sur le plan pratique?

Merci.

Bien cordialement

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 21 December 2020 à 11:23

Bonjour,

Dans le fichier my.ini, à la fin sous la section [mysqld] ajoutez :

local_infile=On
secure-file-priv = ""

pour obtenir :
[mysqld]
default_authentication_plugin=mysql_native_password
port = 3306
local_infile=On
secure-file-priv = ""
et procédez à l'importation LOAD DATA via le Console MySQL comme expliqué ici [www.smf-fr.com]

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.adsl.proxad.net)
Date: 21 December 2020 à 12:18

Bonjour,

Ah merci j'avance.

J'ai corrigé my.ini.

Maintenant pour une raison inconnue le lien smf-fr n'a pas de son et défile si vite que je ne capte rien.

Voulez-vous dire que je ne peux plus utiliser phpMyadmin mabase SQL requête SQL exécuter pour importer mes fichiers csv???

Et qu'il faut passer par un programme spécial (il semble que cela passe par les lignes de commande de Windows 10)???


Bien cordialement

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 21 December 2020 à 12:45

Bonjour,

N'ayant jamais eu besoin d'importer des fichiers csv, je n'ai pas été confronté à ce problème.

Vous pouvez — peut-être — utiliser phpMyAdmin en éditant le fichier my.ini :
Remplacer :
secure_file_priv="D:/wamp64/tmp"
par
;secure_file_priv="D:/wamp64/tmp"
secure_file_priv=""
local_infile=On
Après sauvegarde du fichier modifié, il faudra relancer Wampserver.

La "Console MySQL" n'est pas un programme spécial !
Elle est accessible par Clic-Gauche -> MySQL -> Console MySQL

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.adsl.proxad.net)
Date: 21 December 2020 à 19:24

Bonjour Otomatic,

Merci pour la correction proposée mais malheureusement cela ne marche pas.

Après correction de my.ini la requête donne la même erreur 2000.

Il doit bien y avoir un moyen, même différent d'avant, en passant par phpmyadmin... c'est le but non?

Quelqu'un du forum peut-il injecter une manière de faire?

Bon avec le youtube j'ai récolté quelques passages après au moins 10 visionnages...

Il faudrait, sauf erreur, faire wamp, mysql, mysqlconsole, root, PW, à l'invite mysql> taper use et le nom de la BDD, ensuite taper la même requête en copiant du notepad++

LOAD DATA LOCAL INFILE 'D:/wamp64/tmp/Bibliomysql.csv' REPLACE INTO TABLE bibliobase
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

puis enter

Mais là j'ai une erreur ERROR 1406 (22001) data too long for column 'title' at row 751

Hélas le 'title' de la ligne 751 n'est pas spécialement long : Studies of the Fishes of the Order Cyprinodontes. I. A Classification of the fishes of the Order. II. An Analysis of the genera of the Poeciliidae. III. The species of Profundulus a new genus from Central America. IV.The subspecies of Pseudoxiphophorus bimaculatus and of Priapichthys annectens.

Et cette ligne est inchangée depuis au moins 3 ans et donc je m'interroge car je n'avais pas, avant, de tel message d'erreur avec phpmyadmin.

A+

Bien cordialement,

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: maximus23 (---.dynamic.voo.be)
Date: 21 December 2020 à 19:45

Bonjour,

Rien de compliqué à faire tout est expliqué ici : [forum.wampserver.com]

smiling smiley

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.adsl.proxad.net)
Date: 22 December 2020 à 09:10

Bonjour Maximus,

Merci de cette réaction.

Je ne comprend pas si votre soluce concerne via phpmyadmin ou via la console.

L'auteur du fil, en Anglais, dit que la solution à ce problème vient de la réponse précédente à celle où il dit que c'est résolu, soit:

I have TAB delimited data (ce n'est pas mon cas, chez moi c'est ';'). Inserting '\t' as shown in clip returned an error. Quick search surfaced

[dev.mysql.com]. It says

If you specify no FIELDS or LINES clause, the defaults are the same as if you had written this:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''

Cela dépasse mon Anglais informatique et ma technique de codage en mysql!

Quelle est donc l'erreur nouvelle entre 2014 et 2020 si vous parlez de Phpmyadmin svp?

Bon si vous parlez de la console, la nuit porte conseil car j'ai regardé ma structure de cette table est pour title c'était marqué VARCHAR 255 et un comptage des caractères m'a vite dit que cela dépassait 255 pour cette ligne donc j'ai changé pour 'text' et c'est réglé (pourtant la donnée est la même depuis 3 ans donc j'en conclus peut-être à tort que la nouvelle version est moins permissive.

Donc je pourrai considérer la question comme réglée via la console, à la nuance près que après avoir importé avec succès la nouvelle version de la table j'ai voulu le refaire avec phpmyadmin
avec encore (comme pour la console)
LOAD DATA LOCAL INFILE 'D:/wamp64/tmp/Bibliomysql.csv' REPLACE INTO TABLE bibliobase
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
... et alors j'ai la même erreur 2000!


Bien cordialement

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 22 December 2020 à 09:28

Bonjour,

> Je ne comprend pas si votre soluce concerne via phpmyadmin ou via la console.
Ça concernait (peut-être) PhpMyAdmin.
De toutes manière ça ne coûte rien de faire les essais.

La "Console" MySQL dépend des paramètres de la section [mysqld] de my.ini et je pensais que PhpMyAdmin dépendait de la section [wampmysqld64], ce qui ne semble pas être le cas.

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 22 December 2020 à 10:07

Bonjour,

Pour que ça fonctionne avec PhpMyAdmin, essayez d'ajouter une directive spécifique dans le fichier :
D:\wamp64\alias\phpmyadmin.conf
juste avant </Directory> pour obtenir :
# To allow LOAD DATA LOCAL INFILE
  php_admin_value mysqli.allow_local_infile 1
</Directory>

Bien sûr, il faut lancer PhpMyAdmin via son alias, soit dans le menu Clic-Gauche, soit sous Vos Alias sur la page d'accueil Wampserver.

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.115.148.77.rev.sfr.net)
Date: 23 December 2020 à 20:05

Bonjour Otomatic,


Merci beaucoup du soutien et des propositions pour PHPmyAdmin et LOAD DATA LOCAL INFILE.

J'ai modifié facilement phpmyadmin.conf

Mais malheureusement çà plante de la même façon:

#2000 - LOAD DATA LOCAL INFILE is forbidden, check mysqli.allow_local_infile

Désolé!

Cela doit être épineux.


A+


Bien cordialement


JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: maximus23 (---.dynamic.voo.be)
Date: 23 December 2020 à 20:25

Bonjour,

Il suffit de le faire via la console comme expliqué en plus il y a une vidéo donc cela doit aller sans soucis pour n'importe quelle version de mysql ou de mariadb.

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 24 December 2020 à 09:13

Bonjour,

@maximus23 Merci.

C'est la conclusion à laquelle je suis arrivé après une foultitude d'essais. La console MySQL est la solution.

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.115.148.77.rev.sfr.net)
Date: 24 December 2020 à 18:33

Bonjour Otomatic et Maximus 23,

Merci d'avoir beaucoup cherché... peut-être que ce souci disparaîtra avec une nouvelle version de Wampserver, car avant c'était notre façon prescrite de travailler donc apprise (et mimée).

Désolé si j'ai pu apparaître exigeant, ce n'est pas le cas.
Le projet est international et avec toutes sortes de profils (certains envoient des fax!) et nous sommes globalement (très) faibles en MySql (mêmes nous les 2 français inscrits sur ce forum).
Donc pour nous PHPmyadmin c'est une facilité.
Mais il faudrait écrire c'était car une fois passée en boucle la vidéo Youtube on a pu établir un nouveau processus qui a le gros avantage d'éclairer bien plus que l'erreur 2000 dans PHPmyadmin.
Nous avons dû ainsi corriger plusieurs tables qui passaient bien avant mais qui ne passaient plus avec la version de WS d'aujourd'hui, mais cela a été facile avec les numéros de lignes indiquées dans les messages d'erreur via la console.
Donc on peut dire que le souci est réglé.
Et nous avons importer toutes les tables puis nous avons affiché les pages qui appellent la BDD avec du code PHP bien rodé... mais là grosse (mauvaise) surprise... et je me demande si je peux avoir votre avis d'expert et une solution.

La plupart des caractères spéciaux ne sont plus affichés correctement (ü, Ü, Ö, °, ç, etc.) alors que tout était bon avant (avec le précédent WS de 2014 et Excel 2007 au lieu du nouveau WS et Excel 2019), mais je suis sûr que cela ne vient pas d'Excel 2019 car là ces caractères s'affichent correctement, y compris dans les fichiers csv dérivés, en UTF-8 sans BOM, et puis j'ai une page d'actus dans laquelle je copie manuellement les mêmes données -très récentes- via notepad++ et là pas de souci à l'affichage).
Quelques exemples:
Carolina Ocaña-Insuasti devient Carolina Ocaña-Insuasti
[pronounciation : «bragannssa-hi»] devient [pronounciation : «bragannssa-hi»]
18°C-26°C devient 18°C-26°C
(†?) devient (†?)
etc., etc.

Peut-être est-ce un réglage à modifier dans Wampserver ou une de ses composantes???

Merci encore pour toute votre aide, et pour cette nouvelle question.

Sans oublier de vous souhaiter une belle fête ce soir!

Bien cordialement

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 25 December 2020 à 09:18

Bonjour,

> ce souci disparaîtra avec une nouvelle version de Wampserver
Ça n'a strictement rien à voir avec Wampserver lui-même.

Cela est dû aux évolutions de MySQL et dans une moindre mesure de PHP.

Excel, donc Windows est avec un jeu de caractères CP-1252, proche de iso-8859-1 ou -15 et, maintenant PHP utilise utf-8 et MySQL utf-8mb4.
Il s'agit donc uniquement de la transformation d'un jeu de caractères vers un autre jeu de caractères.

Voir, par exemple [www.miakinen.net] et sa documentation associée.

Voir également MySQL et jeux de caractères

La solution pourrait être d'effectuer une commande "SET NAMES utf8" avant d'effectuer les LOAD DATA

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »



Modifie 1 fois. Derniere modification le 25/12/2020 à 10:50 par Otomatic.

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Stephsteph (---.115.148.77.rev.sfr.net)
Date: 26 December 2020 à 19:03

Bonjour Otomatic,

J'ai passé pas mal de temps à chercher avant de vous répondre.

Oui, nous avions rencontré ce problème de caractères aux tout débuts (2014) mais il était résolu.

Je ne suis pas un expert mais je compare le résultat obtenu entre le mois de Juin dernier pour le dernier import de ma BDD (Excel 2007, version WS de 2014 import via phpmyadmin, W Vista) et aujourd'hui avec les dernières versions WS import via console et W10, donc seulement 6 mois de différences (et toujours PHP 7.2).

Je convertissais et je convertis toujours les fichiers csv avec notepad ++ en UTF-8 sans Bom, donc mes fichiers avant import sont nickels sur le plan de l'affichage des caractères.

Par précaution, quand j'ai importé la base précédente (celle de Juin) dans le nouveau WS, avant d'importer les nouveaux fichiers csv, j'ai fait une copie de la BDD de Juin et je viens de vérifier, tout baigne les caractères s'affichent bien. Donc c'est (sauf erreur je reste modeste) le nouveau processus qui pose problème (à quel niveau ??? Excel 2019, WS ? (pour les 2 bases, celle de Juin et la nouvelle après import des tables via la console) sachant que sur le nouveau WS j'ai le même serveur MSQl 3306 du nouveau WS.

Est-ce que je suis plus clair?

Mes fichiers csv sont marqués dans notepad++ Windows (CR LF) UTF-8, j'en doute mais est-ce que cela aiderait si je les convertissais en format Unix (LF) UTF-8?

Peut-être faut-il changer l'interclassement dans les tables en ? (mais c'est actuellement le même dans la base copiée de Juin et la nouvelle base soit utf8_general_ci)

J'ai trouvé une page très détaillée à
[www.fluxbb.fr]
où il est dit que l'utilisation de la console a des côtés "vicieux" (je cite) dans le domaine des caractères (Le jeu de caractère du client texte, tout en étant déclaré latin1 est en fait cp850)
il conseille de modifier le fichier .ini de WS comme:
Sur un serveur local, par exemple sous Windows avec Wampserver ou EasyPHP, les valeurs par défaut peuvent être modifiées dans le fichier my.ini
# CLIENT SECTION
[client]
[mysql]
default-character-SET=latin1
# SERVER SECTION
[mysqld]
#Jeu de caractères par défaut utilisé lors de la création de tables
#lorsque celui-ci n'est pas explicitement défini.
default-character-SET=latin1

Mais encore une fois cela me dépasse!

Pourriez vous en pratique me dire que faire avec votre proposition de commande "SET NAMES utf8"? Est-ce avec la console de WS ou dans le php?
Je n'ai trouvé que des échanges en Anglais sur Stack Overflow.
Dans le manuel php j'ai la proposition suivante je lis, mais cela me dépasse:
public mysqli::set_charset ( string $charset ) : bool
Dans nos pages php on a déjà le code:
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"winking smiley);

Je vois aussi dans les caractéristiques du serveur de base de données: Jeu de caractères du serveur : cp1252 West European (latin1)

Alternativement, je vois que l'on peut télécharger une version antérieure de WS sur la plateforme SourceForge. Laquelle conseilleriez-vous parmi les moins anciennes pour ne pas avoir ce problème et importer via phpMyadmin si on reste bloqués?

Merci!

Bien cordialement

JH

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Artemus24 (---.70.16.109.rev.sfr.net)
Date: 27 December 2020 à 01:07

Salut à tous.

Voici ce que vous dvez mettre dans le fichier my.ini :
# ------------------------------ #
#     Load data local infile     #
# ------------------------------ #

local-infile = 1

secure-file-priv  = E:/30.MySql

loose-local-infile = on
en ce qui concerne votre commande, elle a évolué et actuellement, on ne met plus "local" dans "LOAD DATA INFILE".

Voici le fichier ".csv" à charger :
\N;"10/5/2014 15:33:17";"web"
125;"15/5/2014 23:53:59";"alpha\; beta\; gamma"
-247;\N;"zéro"

Et voici un exemple d'exécution :
--------------
START TRANSACTION
--------------

--------------
SHOW VARIABLES LIKE 'secure_file_priv'
--------------

+------------------+--------------+
| Variable_name    | Value        |
+------------------+--------------+
| secure_file_priv | E:\30.MySql\ |
+------------------+--------------+
--------------
DROP DATABASE IF EXISTS `base`
--------------

--------------
CREATE DATABASE IF NOT EXISTS `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`
--------------

--------------
DROP TABLE IF EXISTS trav
--------------

--------------
CREATE TABLE `trav`
( `id`        integer unsigned  not null auto_increment primary key,
  `col_num`   integer               null default null,
  `col_date`  datetime              null default null,
  `col_char`  varchar(255)          null default null,
  `col_vide`  varchar(255)          null default null
) ENGINE=InnoDB
  DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
  ROW_FORMAT=COMPRESSED
--------------

--------------
LOAD DATA INFILE 'E:/30.MySql/40.Load/Ex_01/fichier.txt'
     INTO TABLE `trav`
     CHARACTER SET latin1
     FIELDS TERMINATED            BY ';'
            OPTIONALLY ENCLOSED   BY '\"'
            ESCAPED               BY '\\'
     LINES  TERMINATED            BY '\r\n'
     IGNORE 0 LINES
     (@F1, @F2, @F3)
     set col_num  =             trim(@F1),
         col_date = str_to_date(trim(@F2), '%d/%c/%Y %H:%i:%s'),
         col_char =             trim(@F3),
         col_vide = '...'
--------------

--------------
select * from `trav`
--------------

+----+---------+---------------------+--------------------+----------+
| id | col_num | col_date            | col_char           | col_vide |
+----+---------+---------------------+--------------------+----------+
|  1 |    NULL | 2014-05-10 15:33:17 | web                | ...      |
|  2 |     125 | 2014-05-15 23:53:59 | alpha; beta; gamma | ...      |
|  3 |    -247 | NULL                | zéro               | ...      |
+----+---------+---------------------+--------------------+----------+
--------------
COMMIT
--------------

Appuyez sur une touche pour continuer...

@+

----------------------------------------------------------------------------------------------------------------------------------------------------------------
Mon site : [www.jcz.fr]

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 27 December 2020 à 09:10

Bonjour,

> une version antérieure de WS sur la plateforme SourceForge.
C'est la version de MySQL qu'il faut éventuellement changer.

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Re: problème de requête SQL dans la nouvelle version de wamp vs. celle de 2014
Envoyé par: Otomatic (Modérateur)
Date: 27 December 2020 à 09:43

Bonjour,

> J'ai trouvé une page très détaillée à
> [www.fluxbb.fr]
C'est la même chose que le lien donné précédemment : MySQL et jeux de caractères
Normal, puisque je suis le rédacteur des deux !
Citation
Stephsteph
Dans nos pages php on a déjà le code:
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"winking smiley);
Ok, mais, ça vous ne le faites pas dans la console avant d'envoyer les LOAD DATA !

Juste après connexion sur la console MySQL, on regarde les jeux de caratères utilisés :
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+-------------------------------------------------+
| Variable_name            | Value                                           |
+--------------------------+-------------------------------------------------+
| character_set_client     | cp850                                           |
| character_set_connection | cp850                                           |
| character_set_database   | utf8mb4                                         |
| character_set_filesystem | binary                                          |
| character_set_results    | cp850                                           |
| character_set_server     | utf8mb4                                         |
| character_set_system     | utf8                                            |
| character_sets_dir       | E:\wamp64\bin\mysql\mysql8.0.22\share\charsets\ |
+--------------------------+-------------------------------------------------+
8 rows in set (0.01 sec)
On voit bien que la connexion client est cp850 et pas utf8.
Donc, il faut envoyer :
mysql> SET NAMES UTF8;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Et là, la connexion client est bien vue comme utf8
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+-------------------------------------------------+
| Variable_name            | Value                                           |
+--------------------------+-------------------------------------------------+
| character_set_client     | utf8                                            |
| character_set_connection | utf8                                            |
| character_set_database   | utf8mb4                                         |
| character_set_filesystem | binary                                          |
| character_set_results    | utf8                                            |
| character_set_server     | utf8mb4                                         |
| character_set_system     | utf8                                            |
| character_sets_dir       | E:\wamp64\bin\mysql\mysql8.0.22\share\charsets\ |
+--------------------------+-------------------------------------------------+
8 rows in set (0.00 sec)

mysql>

------------------------------------------------------------------------------------------------------------
Wampserver 3.3.0 32 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40 - MariaDB 10.5.13/10.6.5
Wampserver 3.3.0 64 bit - Apache 2.4.54.2 - PHP 8.2.4…7.4.33 - MySQL 5.7.40/8.0.31 - MariaDB 10.5.17/10.10.2
PhPMyadmin 5.2.1 - MysqlDumper 1.24.5
on W10 Pro 64 bit
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons
« Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche »
« It's not because they are many to be wrong, they are necessarily right. Coluche »

Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP