[php/sql] erreur non identifiable...

erreur non identifiable... [php/sql] - PHP - Programmation

Marsh Posté le 29-11-2003 à 20:38:21    

bonjour:)
voila l'erreur que je 'arrivepas a identifier :
 

Code :
  1. 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 '' at line 1


 
je ne voi pas de q<uoi ca peut venir, quelqu peut il maider ,
 
un autre probleme est que enfait cette erreur surgit apresle vote d'un sondage, alorsqu'il medit"impossible d'afficher la page" apres donc un reload,camarche etil me donne cette erreur...
 
en vous remerciant:)

Reply

Marsh Posté le 29-11-2003 à 20:38:21   

Reply

Marsh Posté le 29-11-2003 à 20:40:16    

montre un peu ta quequette^W requête


Message édité par icewinddale le 29-11-2003 à 20:40:25
Reply

Marsh Posté le 29-11-2003 à 20:40:40    

c'est quoi la requete sql ? tu peux la mette :) ?


---------------
Hey! You wanna dance?
Reply

Marsh Posté le 29-11-2003 à 21:10:58    

et bien voila la page concernée... enfait c'est un sondage très simple pris sur phpscrits : ici
 
 

Code :
  1. <? // connect to database
  2. if($poll_usePersistentConnects == 0)
  3. $poll_mySQL_ID = mysql_connect($poll_mySQL_host, $poll_mySQL_user, $poll_mySQL_pwd);
  4. else
  5. $poll_mySQL_ID = mysql_pconnect($poll_mySQL_host, $poll_mySQL_user, $poll_mySQL_pwd);
  6. // assume this vote is valid
  7. $poll_voteValid = 1;
  8. // first of all, check the IP locktable - in case the IP is in here,
  9. // then invalidate vote
  10. if($poll_IPLocking == 1)
  11. {
  12. // we have to check for locked IPs, first of all clear all IPs
  13. // that are already timed out
  14. $poll_result = mysql_db_query($poll_dbName, "SELECT * FROM $poll_IPTableName" );
  15. if(!$poll_result)
  16. {
  17.  echo mysql_errno(). ": ".mysql_error(). "<br>";
  18.  exit();
  19. }
  20. $current_time = time();
  21. while($poll_object = mysql_fetch_object($poll_result))
  22. {
  23.  // did this IP time out?
  24.  if(($poll_object->timeStamp + $poll_IPLockTimeout) < $current_time)
  25.   // it did time out, delete it from the table
  26.   @mysql_db_query($poll_dbName, "DELETE FROM $poll_IPTableName WHERE timeStamp=$poll_object->timeStamp" );
  27. }
  28. // now we're done deleting old IPs, so check if this IP is already in the locktable
  29. $poll_result = mysql_db_query($poll_dbName, "SELECT * FROM $poll_IPTableName WHERE (votersIP='$REMOTE_ADDR') AND (pollID=$poll_id)" );
  30. $poll_object = mysql_fetch_object($poll_result);
  31. if(!$poll_object)
  32.  // the IP is not yet in the locktable, so insert it
  33.  @mysql_db_query($poll_dbName, "INSERT INTO $poll_IPTableName (pollID, voteID, votersIP, timeStamp) VALUES ($poll_id, $poll_voteNr, '$REMOTE_ADDR', $current_time)" );
  34. else
  35.  // the IP is already in the table => the vote must be invalid
  36.  $poll_voteValid = 0;
  37. }
  38. // now check for cookies
  39. if($poll_setCookies == 1)
  40. {
  41. // we have to check for cookies, so get timestamp of this poll
  42. $poll_result = mysql_db_query($poll_dbName, "SELECT timeStamp FROM $poll_descTableName WHERE pollID=$poll_id" );
  43. if(!$poll_result)
  44. {
  45.  echo mysql_errno(). ": ".mysql_error(). "<br>";
  46.  exit();
  47. }
  48. $poll_object = mysql_fetch_object($poll_result);
  49. $poll_timeStamp = $poll_object->timeStamp;
  50. $poll_cookieName = $poll_cookiePrefix.$poll_timeStamp;
  51. // check if cookie exists
  52. if($$poll_cookieName == "1" )
  53.  // cookie exists, invalidate this vote
  54.  $poll_voteValid = 0;
  55. else
  56.  // cookie does not exist yet, set one now
  57.  setCookie("$poll_cookieName", "1" );
  58. }
  59. // update database if the vote is valid
  60. if($poll_voteValid == 1)
  61. {
  62. $poll_result = mysql_db_query($poll_dbName, "UPDATE $poll_dataTableName SET optionCount=optionCount+1 WHERE (pollID=$poll_id) AND (voteID=$poll_voteNr)" );
  63. if(!$poll_result)
  64. {
  65.  echo mysql_errno(). ": ".mysql_error(). "<br>";
  66.  exit();
  67. }
  68. // log the vote in the logging table
  69. if($poll_logging == 1)
  70. {
  71.  $current_time = time();
  72.  $poll_result = mysql_db_query($poll_dbName, "INSERT INTO $poll_logTableName (pollID, voteID, votersIP, timeStamp) VALUES ($poll_id, $poll_voteNr, '$REMOTE_ADDR', $current_time)" );
  73.  if(!$poll_result)
  74.  {
  75.   echo mysql_errno(). ": ".mysql_error(). "<br>";
  76.   exit();
  77.  }
  78. }
  79. }
  80. else
  81. if($poll_warnCheaters == 1)
  82. {
  83.  // this vote is invalid, issue an error message
  84.  echo "<html><body>";
  85.  echo "You have already voted, your vote is being ignored. Please <a href=\"".$poll_forwarder."\">click here</a> to continue.";
  86.  echo "</body></html>";
  87. }
  88. // send header before outputting anything else, and only in case no warning has to be issued
  89. if(($poll_voteValid == 1) || ($poll_warnCheaters == 0))
  90. Header("Location: $poll_forwarder" );
  91. // a lot of browsers can't handle it if there's an empty page
  92. echo "<html><body></body></html>";
  93. // close link to database
  94. if($poll_usePersistentConnects == 0)
  95. mysql_close($poll_mySQL_ID);
  96. //////////////////////////////////////////////////////////////////////
  97. ?>


 
merci ! :jap:

Reply

Marsh Posté le 29-11-2003 à 22:39:39    

euh... oui mais non. Moi ce qui m'intéresse, ce nes pas le script qui génère la requète, mais la requète juste avant qu'elle ne soit exécutée. Un simple echo quoi.

Reply

Marsh Posté le 29-11-2003 à 23:16:43    

Ben quoi gizmo t'es pas devin ?
 
Putains les gars faisez un effort !
 
Rainckill a un grâve problème avec sa requête SQL.
Ce serait gentil de l'aider.
 
LE FAIT QU'il NE PENSE MEME PAS 1 SECONDE A DONNER LA REQUETE EN QUESTION NE DEVRAIT PAS ETRE UN PROBLEME POUR LES DIEUX DE CE FORUM.
 
C'est tout simple pourtant non, il donne la réponse dans son premier post :

Citation :

You have an error in your SQL syntax.


 
Heu Rainckill, ton problème, c'est une erreur de syntaxe dans une requête SQL :D


Message édité par Mara's dad le 29-11-2003 à 23:17:19

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 29-11-2003 à 23:40:51    

Mara's dad a écrit :

Ben quoi gizmo t'es pas devin ?
 
Putains les gars faisez un effort !
 
Rainckill a un grâve problème avec sa requête SQL.
Ce serait gentil de l'aider.
 
LE FAIT QU'il NE PENSE MEME PAS 1 SECONDE A DONNER LA REQUETE EN QUESTION NE DEVRAIT PAS ETRE UN PROBLEME POUR LES DIEUX DE CE FORUM.
 
C'est tout simple pourtant non, il donne la réponse dans son premier post :

Citation :

You have an error in your SQL syntax.


 
Heu Rainckill, ton problème, c'est une erreur de syntaxe dans une requête SQL :D


 
euh ..  :heink:


---------------
Hey! You wanna dance?
Reply

Marsh Posté le 29-11-2003 à 23:47:19    

chamois a écrit :


 
euh ..  :heink:  


J'en ai juste marre des gens qui posent des questions sans aucun contexte et à qui il faut tirer les vers du nez en posant plein de questions complémentaires à propos de leur problème.
 
Ici, le gars ne se pose aucune question. Il a un message d'erreur, et quand on lui demande la requête, il poste un bout de code qu'il avoue avoir pompé (ce qu'il à tout à fait le droit de faire).  
 
Mias il ne comprend rien à ce qu'il fait, il n'essaye même pas et il compte sur les autres pour résourdre ses problèmes.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 29-11-2003 à 23:49:52    

Mara's dad a écrit :


J'en ai juste marre des gens qui posent des questions sans aucun contexte et à qui il faut tirer les vers du nez en posant plein de questions complémentaires à propos de leur problème.
 
Ici, le gars ne se pose aucune question. Il a un message d'erreur, et quand on lui demande la requête, il poste un bout de code qu'il avoue avoir pompé (ce qu'il à tout à fait le droit de faire).  
 
Mias il ne comprend rien à ce qu'il fait, il n'essaye même pas et il compte sur les autres pour résourdre ses problèmes.


 
ah ok ;)


---------------
Hey! You wanna dance?
Reply

Marsh Posté le 30-11-2003 à 09:52:43    

mais si j'ai fait celac'est peut etre que je n'arrive pas a identifier le probleme (cf le titre....) et donc que je ne vois pas d'ou il vient... il me dit ligne 1 mais il n'y a rien d'interressant a cette ligne...
 
j'ai bien comprisque c'était une erreur de syntaxe... mais cela ne m'avance pas tellement ici...
 
c'est pour cela que j'ai voulu faire appel a votre aide...

Reply

Marsh Posté le 30-11-2003 à 09:52:43   

Reply

Marsh Posté le 30-11-2003 à 10:01:07    

C'est une erreur MySql, pas PHP.
Le numéro de la ligne se rapporte à la requête et pas au code PHP...
PS: Une requête peut être sur plusieurs lignes.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-11-2003 à 10:02:58    

donc ligne 1 =1ere requete sql ?

Reply

Marsh Posté le 30-11-2003 à 10:15:15    

Non !
 
Ton script fait plusieurs requête, mais chacune peut être sur plusieurs lignes :
 
exemple:
Requete sur une ligne. S'il y a erreur, elle sera forcément sur la ligne 1
SELECT * FROM MA TABLE
 
Requete sur plusieurs lignes :
SELECT
    *
FROM
    MA TABLE
WHERE
    CHAMPS_1='toto'
    AND STATUS >= 12
ORDER BY
    DATE_IN
 
 
Après chaque execution de requête dans ton code PHP, tu as un bloc qui traite le cas d'erreur MySql :
{
     echo mysql_errno(). ": ".mysql_error(). "<br>";
     exit();
}
 
C'est ce bloc qui affiche le message que tu as.
 
Il faut donc identifier lequel, et si possible afficher la requête en question. Exemple :
Remplace :

Code :
  1. $poll_result = mysql_db_query($poll_dbName, "SELECT * FROM $poll_IPTableName" );
  2. if(!$poll_result)
  3. {
  4. echo mysql_errno(). ": ".mysql_error(). "<br>";
  5. exit();
  6. }


 
par çà :

Code :
  1. $poll_SQL = "SELECT * FROM $poll_IPTableName";
  2. $poll_result = mysql_db_query($poll_dbName, $poll_SQL);
  3. if(!$poll_result)
  4. {
  5. echo mysql_errno(). ": ".mysql_error(). "<br>";
  6. echo "Requete \$poll_SQL = '$poll_SQL'"<br>";
  7. exit();
  8. }


 
Modifie ton code pour toutes les requêtes, ou mieux, fait une fonction pour éviter d'écrire tout le temps la même chose.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-11-2003 à 10:21:32    

Exemple de fonction :

Code :
  1. function run_sql( $DB, $SQL )
  2. {
  3. if( ! $result = mysql_db_query($DB, $SQL) )
  4. {
  5.  echo mysql_errno(). ": ".mysql_error(). "<br>"; 
  6.  echo "Base \$DB = '$DB'"<br>"; 
  7.  echo "Requete \$SQL = '$SQL'"<br>"; 
  8.  exit();
  9. }
  10. return( $result );
  11. }


 
Dans ton code PHP, remplace alors le appels à mysql_db_query() par run_sql.
Exemple :
 
Remplace :  

Code :
  1. $poll_result = mysql_db_query($poll_dbName, "SELECT * FROM $poll_IPTableName" ); 
  2. if(!$poll_result) 
  3. echo mysql_errno(). ": ".mysql_error(). "<br>"; 
  4. exit(); 
  5. }

 
 
par çà :

Code :
  1. $poll_result = run_sql($poll_dbName, "SELECT * FROM $poll_IPTableName" );


 
OK ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-11-2003 à 12:00:34    

(j'adore [:ddr555])

Reply

Marsh Posté le 30-11-2003 à 14:41:25    

Ta gueule :o


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed