Fork me on GitHub






Fonction queryFromFile($file), bon à savoir
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
que ce soit le fichier mysql.sql ou la fonction queryFromFile($file) il y a un problème :

si je prends comme exemple le fichier mysql.sql qui est utilisé pour l'installation d'un module, le nom des tables peut être entouré par des apostrophes inversées (alt 7).
Jusque là pas de problème, mais si j'ajoute un "INSERT INTO TABLE' sur le même principe:
INSERT INTO `quizmaker_categories`
 ( `
cat_name`, `cat_description`,  `cat_theme`)
 
VALUES ('Test''Catégorie de test''default');

bin la ça ne fonctionne plus l'insert ne se fait pas.
Par contre si je retire les apostrophes inverses, les données sont bien insérées.

donc il faut savoir que pour les "CREATE TABLE" le nom peut être encadré par des apostrophes inverses, mais pas pour des "INSERT INTO TABLE"
INSERT INTO quizmaker_categories
 
( `cat_name`, `cat_description`,  `cat_theme`)
 
VALUES ('Test''Catégorie de test''default');

Par contre pour les noms de champs cela ne change rien.

De toute façon ce caractère est à utiliser spécifiquement dans le cas ou les noms contiennent des espaces, ce qui est particulièrement déconseillé que ce soit pour les noms de tables,les noms de champs ou d'index, sinon ça peut devenir une vrai galère.




Posté le : 17/10/2021 14:28

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Fonction queryFromFile($file), bon à savoir
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
bizarre comme erreur,
je vais vérifier mes tables de mon coté, j'ai certaines erreurs sur lesquelles je bute sur un Frameworks sur lequel je bosse en ce moment.
Dans le temps j'utilisais mes propres class de requêtes sql sans passer par celles de Xoops, jamais de pbs.
C'est la base pourtant les ` cela devient même obligatoire sur les dernières versions de SGBD

Posté le : 19/10/2021 10:41
Partager Twitter Partagez cette article sur GG+
Re: Fonction queryFromFile($file), bon à savoir
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Bonjour,
Je dirais que ce n'est pas une erreur en soi, ce qui es une erreur c'est de nommer des tables et des champs avec des espaces, des tirets ou autres caractères qui nécessitent d'encadrer les noms avec des apostrophes inverses.
D’habitude je vire systématiquement ces apostrophes inverses, et pour une fois je les ai gardées, mais une fois enlevées plus de soucis.
conclusion : n'utiliser pour le nomage que des caractères alphanumériques et des underscores (qui lui ne pose pas de problème). Ca devrait faire partie des bonnes pratiques .
JJDai

Posté le : 19/10/2021 13:33

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Fonction queryFromFile($file), bon à savoir
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
aussi, mais l'encadrage des tables et champs par ` va devenir la norme.
Notamment pour éviter les conflits avec les noms réservés comme date pour le plus connu et ça fait gagner du temps dans l'exécution des requêtes, on le sent nettement sur les jointures. C'est comme la différence entre ' et " pour les variables en PHP ;)
Toutes mes requêtes sql sont écrites avec des `

Posté le : 19/10/2021 14:45
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

49 Personne(s) en ligne (42 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 49 | Plus ...