Guest dubastiste Posté 24 Avril 2005 Posté 24 Avril 2005 (modifié) Bonsoir à tous, je suis occupé à replacer ma base mysql sur un nouveau serveur mais j'ai un message d'erreur quand j'exécute des requêtes avec apostrophe. Exemple: => C\'est le jeu du jour ( ca donne Erreur 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 ... ) ou => C'est le jeu du jour ( ca donne aussi Erreur 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 ... ) tandis que => C est le jeu du jour ( c'est ok ) Probleme Ca fait un peu cloche sur le site des descriptions sans apostrophes Je pourrais les modifier manuellement une par une, car une fois enregistré dans la base mysql alors je sais replacé des apostrophes mais sur + ou - 1500 désignations, ca va être du boulot. Question Il y a un moyen de faire accepter les apostrophes ? Merci d'avance Modifié 26 Avril 2005 par dubastiste
Sarc Posté 24 Avril 2005 Posté 24 Avril 2005 Salut tu peux donner la requête complète ? Jpourrai être plus avancé peut-être...
Anonymus Posté 24 Avril 2005 Posté 24 Avril 2005 La bonne synthaxe, pour un insert, par exemple, avec apostrophe, est : INSERT INTO table (id,champ) VALUES ('','c\'est le jeu du jour'); Si tu as une erreur sql, c'est parce qu'il y a un apostrophe ou un anti-slash qui se promène sans raisons. Pour résoudre le problème, il ne faut pas regarder ce que renvoie le navigateur, mais bien ce que renvoie le code source du navigateur. Essaies d'afficher la requète en question (echo $query), et postes nous le code source. L'erreur y est Anonymus.
Guest dubastiste Posté 24 Avril 2005 Posté 24 Avril 2005 Merci pour vos réponses. Voilà un exemple de requête: INSERT INTO `content` VALUES (1, 2, 1108323180, 'jeu1', 'admin', 'C\' est le jeu du jour !', 'url.swf', 4, 1, 0, 0, '', 3, 0, 1, '0', 0, 1, 1, 1, 1, 1, 0, '', 'url.jpg', ''); En fait, avant de travailler sur le serveur, je fais des tests sur un vieux compte lycos-multimania. C'est une vieille version de phpmyadmin, peut être que sur une version plus récente, ca marchera car je ne vois pas d'apostrophe ou de anti-flash qui se promene sans raison.
Anonymus Posté 24 Avril 2005 Posté 24 Avril 2005 Ca peut venir d'un problème de 'nombre de champs'. Verifies que tu aies bien 26 champs, dans la table 'content'. (et recomptes, je suis pas à l'abri d'une erreur ) Tu devrais mettre, derrière 'content', le nom des champs. Ca leve ainsi toute ambiguité.
Guest dubastiste Posté 25 Avril 2005 Posté 25 Avril 2005 26 on compte la même chose (on est fort quand même hein ) et apparement la table correspond, je comprends pas ! Et au pire, j'enleverais les apostrophes et je les rajouterais une a une par la suite. ## Structure de la table `content`#CREATE TABLE `content` ( `content_id` int(14) unsigned NOT NULL auto_increment, `content_cat` int(6) unsigned NOT NULL default '0', `content_time` int(14) unsigned NOT NULL default '0', `content_title` varchar(250) NOT NULL default '', `content_autor` varchar(60) NOT NULL default '', `content_text` text NOT NULL, `content_altdat` varchar(250) NOT NULL default '', `content_option` tinyint(1) NOT NULL default '1', `content_status` tinyint(1) NOT NULL default '1', `content_subid` int(14) NOT NULL default '0', `content_expire` int(14) unsigned NOT NULL default '0', `content_header` text NOT NULL, `content_autorid` int(14) unsigned NOT NULL default '0', `content_themeid` int(14) unsigned NOT NULL default '0', `content_views` int(6) unsigned NOT NULL default '0', `content_rating` double NOT NULL default '0', `content_rating_total` int(14) unsigned NOT NULL default '0', `content_comment_status` tinyint(1) NOT NULL default '1', `content_rating_status` tinyint(1) NOT NULL default '1', `content_ubb` tinyint(1) NOT NULL default '1', `content_html` tinyint(1) NOT NULL default '1', `content_smilies` tinyint(1) NOT NULL default '1', `content_filesize` int(14) unsigned NOT NULL default '0', `content_template` varchar(250) NOT NULL default '', `content_teaser` text NOT NULL, `content_related` text NOT NULL, PRIMARY KEY (`content_id`)) TYPE=MyISAM AUTO_INCREMENT=1837; C'est peut-être la version de phpmyadmin de lycoch qui est trop vieille ??? Je vais essayer bientot sur une nouvelle version et je vous tiendrais au courant. PS:Merci Anonymus.
xpatval Posté 25 Avril 2005 Posté 25 Avril 2005 Salut, Tu utilises bien addslashes(), avant l'INSERT ? xpatval
Guest dubastiste Posté 25 Avril 2005 Posté 25 Avril 2005 Bonjour xpatval, euh, je ne vois pas de addslashes() dans mon fichier sql. En fait, je ne suis pas un pro, je suis même loin d'en être un, ceci explique la raison de mes tests sur lyly et non directement sur un nouveau serveur, si tu sais m'expliquer assez simplement comment exécuter du addslashes() ca serait sympa.
Striker Posté 25 Avril 2005 Posté 25 Avril 2005 Explication de la fonction addslashes http://www.nexen.net/docs/php/annotee/func....addslashes.php
Sarc Posté 25 Avril 2005 Posté 25 Avril 2005 Je crois que ce monsieur veut importer une table SQL à partir d'un fichier txt ou .sql, enfin bref, il ne travaille pas à partir d'un programme PHP mais à partir de PHPmyadmin je suppose... Donc la fonction addslaches n'a rien à voir :/
Guest dubastiste Posté 25 Avril 2005 Posté 25 Avril 2005 Je crois que ce monsieur veut importer une table SQL à partir d'un fichier txt ou .sql, enfin bref, il ne travaille pas à partir d'un programme PHP mais à partir de PHPmyadmin je suppose... Donc la fonction addslaches n'a rien à voir :/ <{POST_SNAPBACK}> Oui c'est exactement ca, je veut importer une table SQL à partir d'un fichier que j'ai sauvegardé voila un mois et dont l'extension est SQL. Désolé si je n'emploi pas toujours les bons termes pour m'expliquer PS: sarc, laisse le monsieur chez madame et appelle moi bastiste
Striker Posté 25 Avril 2005 Posté 25 Avril 2005 Quel est la version de MySQL dans laquelle tu veut mettre ta base. Et la version MySQL d'où vient ta sauvegarde. Si elles sont différentes comme par exemple 3.23 et 4.1 il faut le spécifier lors de la lecture du fichier sql. Il me semble qu'il suffit de l'indiquer dans phpmyAdmin.
Guest dubastiste Posté 25 Avril 2005 Posté 25 Avril 2005 Voilà la question qui me ridiculise J'arrive pas à trouver la version sur lycos... Mais ca doit être une vieille. Et je ne saurais pas dire la version qu'il y avait sur mon VPS (de ma sauvegarde donc) vu qu'il est mort mais c'était sans doute une nouvelle version car elle était colorée et avec des icones partout Vu que je vais prendre un dédié, je vais sans doute avoir une nouvelle version donc le problème des apostrophes sera "peut-être" résolu ! C'est pour le moment le seul problème que je rencontre. Je vous tiendrais au courant. Et merci pour vos réponses et votre aide
Dan Posté 25 Avril 2005 Posté 25 Avril 2005 Dubatiste, Tu dois avoir la version mySql dans les premières lignes du fichier de dump de ta base, sous cette forme: -- phpMyAdmin SQL Dump-- version 2.6.1-pl3-- http://www.phpmyadmin.net-- -- Serveur: localhost-- Généré le : Lundi 25 Avril 2005 à 18:46-- Version du serveur: 4.0.24 vraisemblablement avec des numéros de versions plus anciens...
Guest dubastiste Posté 25 Avril 2005 Posté 25 Avril 2005 Décidement, vous avez réponse à tout !!! Ma sauvegarde: # phpMyAdmin SQL Dump # version 2.5.4 Mes test sur Lycos: # phpMyAdmin MySQL-Dump # version 2.2.1-dev Je vais essayer de trouver un petit heb qui aurait une version plus recente de phpmyadmin pour faire mes tests en attendant de choisir un serveur dédié, à ce sujet, si peut-être vous savez encore m'aider ici et m'éclairer un peu sur le bon choix à faire. De toute façon, je vous tiens au courant pour les apostrophes ainsi on aura une réponse fixe sur ce problème (en esperant donc que c'est une incompatibilité de version, si on peux appeller ca ainsi)
Anonymus Posté 25 Avril 2005 Posté 25 Avril 2005 Mes test sur Lycos:# phpMyAdmin MySQL-Dump # version 2.2.1-dev Le "-dev" signifie 'en développement'. Autrement dit, une version pas "stable". Ce n'est pas sérieux de la part de Lycos. Mais surtout, la version n'est pas à jour, et ce depuis pas mal de versions déjà.. Imagines, on en est à 2.6..
Guest dubastiste Posté 26 Avril 2005 Posté 26 Avril 2005 Merci pour l'info Anonymus, faut dire que mes tests, c'est sur du lycos gratuit que je les fais, mais quand même pour être dépassé à ce point... Je viens de tester sur un phpmyadmin 2.6.0-pl3 ! Résultat des courses, ca fonctionne sans aucun problème ! Je suis content, merci à tous de m'avoir aider
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant