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 :

[MaxDB] select - Invalid keyword or missing delimiter [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut [MaxDB] select - Invalid keyword or missing delimiter
    Bonjour,

    J'ai une db MaxDB et je fais une interface en PHP. Dans mon code, j'ai le select suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query_ptage_user= "select * from ptage_infotel ptage left outer join hor_view hor on ptage.$jour_semaine=hor.id_hor where ptage.jour>=ptage.d_contrat and ptage.jour<=ptage.d_contrat_fin and ptage.jour=$date_jour and ptage.badge=$user order by ptage.nom, ptage.jour, ptage.heure";
    $result_ptage_user= maxdb_query($link,$query_ptage_user) or die("La requête a échoué : ".maxdb_error());
    avec $date_jour=2008-02-05 00:00:00.000000 et $user=1111
    l'execution me donne une erreur : "Invalid keyword or missing delimiter"
    Or la requête suivante dans SQL Studio marche très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ptage_infotel ptage left outer join hor_view hor on ptage.$jour_semaine=hor.id_hor where ptage.jour>=ptage.d_contrat and ptage.jour<=ptage.d_contrat_fin and ptage.jour='2008-02-05 00:00:00.000000' and ptage.badge='1111' order by ptage.nom, ptage.jour, ptage.heure"
    J'ai essayé en rajoutant des simple quote autour de mes variables, mais alors Apache plante mechament!

    Merci d'avance,

    Nico

  2. #2
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Il faut bien que tu encadres la date par des quotes

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    Ok, mais alors j'ai Apache qui plante systematiquement... Je comprend pas pourquoi...
    Bon c'est vrais que j'ai installé un serveur WAMP2, ce qui n'est pas terrible, mais bon, c'est un serveur de test aussi...

    Bref, je suis dans la ******

  4. #4
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Apache qui plante ? C'est à dire ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    C'est à dire qu'après ~20 secondes, j'ai windows qui me donne un beau
    Appache HTTP Server a rencontré un problème et doit fermer. nous vous prions de nous excuser pour le désagrement encouru.
    .../...
    Veuillez signalez ce problème à Microsoft.
    .../...
    et je dois redémarrer le service apache.

    il me le fait vraiment a chaque fois avec les guillemets...

  6. #6
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Ca serait drôle de signaler un problème de Apache à microsoft

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    c'est clair que ce serrait comique de voir leurs têtes

    Mais en attendant, toutes les requêtes select dans lesquelles j'ai un WHERE avec une variable, j'ai le même problème.
    Un autre exemple, avec une requête toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query_user= "Select * from ptage_infotel where d_contrat<='$date_jour' and d_contrat_fin>='$date_jour' and badge='$id_user' order by jour DESC, heure ASC";
    $result_user= maxdb_query($link,$query_user) or die("La requête a échoué : ".maxdb_error());
    ==> Apache plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query_user= "Select * from ptage_infotel where d_contrat<=$date_jour and d_contrat_fin>=$date_jour and badge=$id_user order by jour DESC, heure ASC";
    $result_user= maxdb_query($link,$query_user) or die("La requête a échoué : ".maxdb_error());
    ==>message d'erreur : "Warning: maxdb_query() [function.maxdb-query]: -3008 POS(57) Invalid keyword or missing delimiter [42000] in C:\wamp\www\infotel\presence.php on line 23"

    Faut absolument que ce problème soit résolu rapidos, je commence à être vraiment bloqué dans mon développement.

    Bref, merci d'avance pour toutes aides!

    Nico

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    J'ai également essayé avec une autre methode (merci Dreamwaever!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query_users= sprintf("Select * from ptage_infotel where d_contrat<=%s and d_contrat_fin>=%s order by nom",GetSQLValueString($date_jour, "text"),GetSQLValueString($date_jour, "text"));
    $result_users= maxdb_query($link,$query_users) or die("La requête a échoué : ".maxdb_error($link));
    avec
    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
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("maxdb_real_escape_string") ? maxdb_real_escape_string(maxdb_connect(),$theValue) : maxdb_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    et Apache plante de nouveau...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    Bon, je trouve pas de solution de mon côté...

    Je viens de chercher si eventuellement il y avait un bug connu dans la version de mon extention php pour maxdb (5.2.5.5), mais rien...

    Il y a juste un truc... je fais plusieurs SELECT, mais je suppose que ça devrait pas poser de problème...
    Code un peu simplifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $link=maxdb_connect() or die("Connexion impossible : ".maxdb_connect_error());
    $query_users= sprintf("Select * from ptage_infotel where d_contrat<=%s and d_contrat_fin>=%s order by nom",GetSQLValueString($date_jour, "text"),GetSQLValueString($date_jour, "text"));
    $result_users= maxdb_query($link,$query_users) or die("La requête a échoué : ".maxdb_error($link));
    while ($users=maxdb_fetch_array($result_users)){
    	$id_user=$users[0];
    	if(isset($users[3])){
    		$query_user= sprintf("Select * from ptage_infotel where d_contrat<=%s and d_contrat_fin>=%s and badge=%s order by jour DESC, heure ASC",GetSQLValueString($date_jour, "text"),GetSQLValueString($date_jour, "text"),GetSQLValueString($id_user, "text"));
    		$result_user= maxdb_query($link,$query_user) or die("La requête a échoué : ".maxdb_error($link));
    		while ($user=maxdb_fetch_array($result_user)){
    .../...
    J'ai ça dans un peu près toute mes pages...

    Il y a également que le moteur de DB MaxDB est limité à 3 connexions simultanées (d'après ce que me dit notre fournisseur), mais si c'était cette limite le probleme, j'aurrais une maxdb_error, et pas un plantage de Apache.

    S'il vous plait, j'ai besoin de vous!

    Nico

    mon phpinfo ICI
    le log d'apache : "Error in my_thread_global_end(): 252 threads didn't exit"

    EDIT : après tests, c'est bien le fait d'avoir mes 2 query qui pause le probleme... C'est pourtant autorisé, non???

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    Le même genre de requête sur une mysql fonctionne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php require_once('Connections/Infotel.php');
     
    mysql_select_db($database_Infotel, $Infotel);
    $query_users= "Select * from user";
    $result_users= mysql_query($query_users,$Infotel) or die("La requête a échoué : ".mysql_error());
     
    while ($users=mysql_fetch_array($result_users)){
    	$nom= $users[1];
    	$query_user= "Select * from user where nom='$nom'";
    $result_user= mysql_query($query_user,$Infotel) or die("La requête a échoué : ".mysql_error());
    while ($user=mysql_fetch_array($result_users)){echo $user[1];}
    	}
    ?>
    or les biblioteques de l'extention MaxDB viennet de celles de MySQL...

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 52
    Par défaut
    Salut,

    Un piste possible : peut-être devrais-tu regarder du côté des magic_quote de php et des bugs connus (ou non d'ailleurs) avec maxDb.

    stf

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    j'ai poster un rapport de bug sur php.net
    Va falloir que j'envois mes données dans une base Mysql avec un script...

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

Discussions similaires

  1. Erreur : Invalid Keyword in parameter
    Par Ghunter59 dans le forum E-Commerce
    Réponses: 3
    Dernier message: 21/05/2020, 11h29
  2. [MySQL] Requête select invalide
    Par claude77 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 21/10/2014, 16h50
  3. BlackBerry - 907 invalid jar descriptor missing required attribute MiDlet-1
    Par duclefou dans le forum Développement Mobile en Java
    Réponses: 2
    Dernier message: 12/02/2011, 13h53
  4. [ATOS] Invalid Keyword in parameter
    Par skarapace dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 01/04/2009, 19h07
  5. fonction select invalide
    Par jpbv1 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/06/2007, 20h03

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