IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

requete sql ne marche pas sous mysql 4 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 9
    Points
    9
    Par défaut requete sql ne marche pas sous mysql 4
    bonjour,

    je viens de solliciter votre aide car j'ai un souci avec une requete sql qui marche en local avec la version 5 de mysql mais mon hébergeur utilise la version 4 et la même requête génère des erreurs

    voici le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    -- phpMyAdmin SQL Dump
    -- version 2.9.1.1-Debian-2
    -- http://www.phpmyadmin.net
    -- 
    -- Host: localhost
    -- Generation Time: Jan 26, 2007 at 05:34 PM
    -- Server version: 5.0.30
    -- PHP Version: 4.4.4-8
    -- 
    -- Database: `stats`
    -- 
     
    -- --------------------------------------------------------
     
    -- 
    -- Table structure for table `stats_access`
    -- 
     
    CREATE TABLE `stats_access` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `dt` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      `page` varchar(255) collate utf8_unicode_ci NOT NULL,
      `ip` varchar(15) collate utf8_unicode_ci NOT NULL,
      `ua` varchar(255) collate utf8_unicode_ci NOT NULL,
      `ua_info` varchar(255) collate utf8_unicode_ci NOT NULL,
      `ua_type` varchar(32) collate utf8_unicode_ci NOT NULL,
      `ua_ver` varchar(10) collate utf8_unicode_ci NOT NULL,
      `os` varchar(32) collate utf8_unicode_ci NOT NULL,
      `ref_md5` varchar(32) collate utf8_unicode_ci NOT NULL,
      `ref_type` varchar(32) collate utf8_unicode_ci NOT NULL,
      `ref` text collate utf8_unicode_ci NOT NULL,
      `screen_x` int(10) unsigned NOT NULL,
      `screen_y` int(10) unsigned NOT NULL,
      `view_x` int(10) unsigned NOT NULL,
      `view_y` int(10) unsigned NOT NULL,
      `user` varchar(255) collate utf8_unicode_ci NOT NULL,
      `session` varchar(255) collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `ref_type` (`ref_type`),
      KEY `page` (`page`),
      KEY `ref_md5` (`ref_md5`),
      KEY `dt` (`dt`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    -- --------------------------------------------------------
     
    -- 
    -- Table structure for table `stats_iplocation`
    -- 
     
    CREATE TABLE `stats_iplocation` (
      `ip` varchar(15) collate utf8_unicode_ci NOT NULL,
      `code` varchar(3) collate utf8_unicode_ci NOT NULL,
      `country` varchar(255) collate utf8_unicode_ci NOT NULL,
      `city` varchar(255) collate utf8_unicode_ci NOT NULL,
      `host` varchar(255) collate utf8_unicode_ci NOT NULL,
      `lastupd` timestamp NOT NULL default CURRENT_TIMESTAMP,
      PRIMARY KEY  (`ip`),
      KEY `code` (`code`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    -- added 2007-01-28
    ALTER TABLE `stats_access` CHANGE `dt` `dt` DATETIME NOT NULL ;
    ALTER TABLE `stats_access` ADD `js` TINYINT( 1 ) NOT NULL AFTER `view_y` ;
    UPDATE `stats_access` SET js = 1 ;
     
    -- added 2007-01-31
    ALTER TABLE `stats_access` ADD `uid` VARCHAR( 50 ) NOT NULL ;
     
     
    CREATE TABLE `stats_outlinks` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `dt` datetime NOT NULL,
      `session` varchar(255) collate utf8_unicode_ci NOT NULL,
      `link_md5` varchar(32) collate utf8_unicode_ci NOT NULL,
      `link` text collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `link_md5` (`link_md5`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    -- added 2007-02-04
    ALTER TABLE `stats_outlinks` ADD `page` VARCHAR( 255 ) NOT NULL AFTER `dt` ;
     
    CREATE TABLE `stats_search` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `dt` datetime NOT NULL,
      `page` varchar(255) collate utf8_unicode_ci NOT NULL,
      `query` varchar(255) collate utf8_unicode_ci NOT NULL,
      `engine` varchar(255) collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    CREATE TABLE `stats_searchwords` (
      `sid` BIGINT UNSIGNED NOT NULL ,
      `word` VARCHAR( 255 ) NOT NULL ,
      PRIMARY KEY ( `sid` , `word` )
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
     
    -- statistic fixes
    update stats_access set ref_type='external' where ref LIKE 'http://digg.com/%';
    update stats_access set ref_type='external' where ref LIKE 'http://del.icio.us/%';
    update stats_access set ref_type='external' where ref LIKE 'http://www.stumbleupon.com/%';
    update stats_access set ref_type='external' where ref LIKE 'http://swik.net/%';
    update stats_access set ref_type='external' where ref LIKE 'http://segnalo.alice.it/%';
     
    -- added 2008-06-15
    CREATE TABLE `stats_refseen` (
      `ref_md5` varchar(32) collate utf8_unicode_ci NOT NULL,
      `dt` datetime NOT NULL,
      PRIMARY KEY ( `ref_md5` ),
      KEY `dt` (`dt`)
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
     
    -- This will take some time...
    INSERT INTO stats_refseen (ref_md5,dt) SELECT ref_md5, MIN(dt) FROM stats_access GROUP BY ref_md5;
    comment l'adapter pour mysql 4 ?

    merci d'avance

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Avec les messages d'erreur, ça nous aiderait à t'aider.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 9
    Points
    9
    Par défaut
    merci pour ta réponse

    MySQL a réponduocumentation
    #1064 - 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 'CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    `page` varcha

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Je crois qu'il te faut enlever ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ON UPDATE CURRENT_TIMESTAMP
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 9
    Points
    9
    Par défaut
    non ca ne marche pas :-/ et j'ai carement supprimé la ligne: default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP

    mais j'obtiens erreur:

    #1064 - 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 'collate utf8_unicode_ci NOT NULL,
    `ip` varchar(15) collate u

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je viens de créer la première table avec ton code (celui du premier message) sous phpMyAdmin avec MySQL 4.1.9-max.
    Aucune erreur !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Le retrait de "default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP" s'est fait avec ou sans la virgule à la fin de la ligne ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 9
    Points
    9
    Par défaut
    finalement j'ai modifier le script de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    CREATE TABLE `stats_access` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `dt` timestamp NOT NULL,
      `page` varchar(255)  NOT NULL,
      `ip` varchar(15)  NOT NULL,
      `ua` varchar(255)  NOT NULL,
      `ua_info` varchar(255)  NOT NULL,
      `ua_type` varchar(32)  NOT NULL,
      `ua_ver` varchar(10)  NOT NULL,
      `os` varchar(32)  NOT NULL,
      `ref_md5` varchar(32)  NOT NULL,
      `ref_type` varchar(32)  NOT NULL,
      `ref` text  NOT NULL,
      `screen_x` int(10) unsigned NOT NULL,
      `screen_y` int(10) unsigned NOT NULL,
      `view_x` int(10) unsigned NOT NULL,
      `view_y` int(10) unsigned NOT NULL,
      `user` varchar(255)  NOT NULL,
      `session` varchar(255)  NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `ref_type` (`ref_type`),
      KEY `page` (`page`),
      KEY `ref_md5` (`ref_md5`),
      KEY `dt` (`dt`)
    ) ENGINE=MyISAM  ;
     
    -- --------------------------------------------------------
     
    -- 
    -- Table structure for table `stats_iplocation`
    -- 
     
    CREATE TABLE `stats_iplocation` (
      `ip` varchar(15)  NOT NULL,
      `code` varchar(3)  NOT NULL,
      `country` varchar(255)  NOT NULL,
      `city` varchar(255)  NOT NULL,
      `host` varchar(255)  NOT NULL,
      `lastupd` timestamp NOT NULL,
      PRIMARY KEY  (`ip`),
      KEY `code` (`code`)
    ) ENGINE=MyISAM;
     
    -- added 2007-01-28
    ALTER TABLE `stats_access` CHANGE `dt` `dt` DATETIME NOT NULL ;
    ALTER TABLE `stats_access` ADD `js` TINYINT( 1 ) NOT NULL AFTER `view_y` ;
    UPDATE `stats_access` SET js = 1 ;
     
    -- added 2007-01-31
    ALTER TABLE `stats_access` ADD `uid` VARCHAR( 50 ) NOT NULL ;
     
     
    CREATE TABLE `stats_outlinks` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `dt` datetime NOT NULL,
      `session` varchar(255)  NOT NULL,
      `link_md5` varchar(32)  NOT NULL,
      `link` text  NOT NULL,
      PRIMARY KEY  (`id`),
      KEY `link_md5` (`link_md5`)
    ) ENGINE=MyISAM  ;
     
    -- added 2007-02-04
    ALTER TABLE `stats_outlinks` ADD `page` VARCHAR( 255 ) NOT NULL AFTER `dt` ;
     
    CREATE TABLE `stats_search` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `dt` datetime NOT NULL,
      `page` varchar(255)  NOT NULL,
      `query` varchar(255)  NOT NULL,
      `engine` varchar(255)  NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM ;
     
    CREATE TABLE `stats_searchwords` (
      `sid` BIGINT UNSIGNED NOT NULL ,
      `word` VARCHAR( 255 ) NOT NULL ,
      PRIMARY KEY ( `sid` , `word` )
    ) ENGINE = MYISAM CHARACTER SET utf8 ;
     
    -- statistic fixes
    update stats_access set ref_type='external' where ref LIKE 'http://digg.com/%';
    update stats_access set ref_type='external' where ref LIKE 'http://del.icio.us/%';
    update stats_access set ref_type='external' where ref LIKE 'http://www.stumbleupon.com/%';
    update stats_access set ref_type='external' where ref LIKE 'http://swik.net/%';
    update stats_access set ref_type='external' where ref LIKE 'http://segnalo.alice.it/%';
     
    -- added 2008-06-15
    CREATE TABLE `stats_refseen` (
      `ref_md5` varchar(32)  NOT NULL,
      `dt` datetime NOT NULL,
      PRIMARY KEY ( `ref_md5` ),
      KEY `dt` (`dt`)
    ) ENGINE = MYISAM CHARACTER SET utf8 ;
     
    -- This will take some time...
    INSERT INTO stats_refseen (ref_md5,dt) SELECT ref_md5, MIN(dt) FROM stats_access GROUP BY ref_md5;
    J'ai pu créer les tables mais lors de connexion au plugin(car il s'agit d'un plugin de dokuwiki) j'ai une erreur:

    Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in /homepages/36/d197242868/htdocs/lib/plugins/statistics/admin.php on line 909

    Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /homepages/36/d197242868/htdocs/lib/plugins/statistics/admin.php on line 911

    Les lignes 909 à 911 de mon plugins/admin.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
         * Simple function to run a DB query
         */
        function runSQL($sql_string) {
            $link = $this->dbLink();
    
            $result = mysql_db_query($this->conf['db_database'],$sql_string,$link);
            if(!$result){
                msg('DB Error: '.mysql_error($link).' '.hsc($sql_string),-1);
                return null;
            }

  9. #9
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Ce n'est plus un problème MySQL maintenant, c'est lié à la POO dans un script php.
    Faudrait migrer vers un forum dédié à ce domaine.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  10. #10
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    A mon avis le fond du problème reste que ce plug-in a besoin d'une version plus récente de MySQL. Tenter de passer outre c'est chercher les ennuis.

    Eventuellement, ça marchera peut-être en utilisant une date par défaut, mais ça risque d'avoir des effets de bords sur le fonctionnement du plug-in :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `dt` timestamp DEFAULT '2000-10-10'

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 9
    Points
    9
    Par défaut
    non j'ai toujours la même erreur...je pense que t'as raison il me faut la bonne version de mysql le soucis ce que mon hébergeur ne réponds pas à mes emails (1and1)

    Ce qui est curieux ce que j'ai des amis qui sont hébergés chez 1and1 et ils ont la version 5 de mysql??

    en fin bon, merci d'avoir essayé

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Points : 9
    Points
    9
    Par défaut
    Problème résolu!

    Pour ceux qui sont dans même cas que moi il faut savoir qu'il est possible de migrer vers mysql 5 chez 1and1

    Voir ici:http://faq.1and1.fr/scripts/mysql/13.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete sql qui marche pas.
    Par thebarbarius dans le forum Langage
    Réponses: 11
    Dernier message: 06/10/2012, 10h27
  2. [MySQL] condition avec requete qui ne marche pas ..sous ie
    Par esti89 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h53
  3. Requete sql qui marche pas
    Par jahno dans le forum WinDev
    Réponses: 1
    Dernier message: 20/07/2007, 12h17
  4. erreur de requete sous php mais pas sous mysql
    Par kenny49 dans le forum Requêtes
    Réponses: 21
    Dernier message: 28/06/2006, 16h36
  5. Réponses: 2
    Dernier message: 04/06/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo