[RESOLU] erreur syntaxe SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] erreur syntaxe SQL

Re: erreur syntaxe SQL

par bob56@ » 19 janv. 2013, 15:42

Bonjour :D ,
Sur le serveur dans ma base de donnés mod est bien `mod`.

Je n'ai pas trouvé d'où venait le problème, mais en réinstallant le forum sur mon pc avec EasyPHP, je me suis rendu compte qu'il n'y avait pas de PB.

J'ai donc exporté en remplacement de la partie corrompu sur mon hébergeur et tout est rentré dans l'ordre.

Merci du dérangement :P

Re: erreur syntaxe SQL

par Invité » 09 janv. 2013, 22:49

OK, c'est bien comme çà que je procède.
Il va falloir que je trouve la bonne page. Je verrai çà demain car je fatigue.

Encore merci et bonne nuit

Re: erreur syntaxe SQL

par xTG » 09 janv. 2013, 20:33

Editeur de texte > rechercher > remplacer
Il n'y a pas de méthodes miracles. ;)

Et si cela ne fonctionne toujours pas c'est sans doute que le message d'erreur a changé.

Re: erreur syntaxe SQL

par Invité » 09 janv. 2013, 19:49

Merci de suivre mon Problème. J'ai essayé de mettre `mod` dans differents endroit mais sans résoudre le problème. La rectification de l'erreur est certainement dans le code suivant , mais à quel endroit ?
//////////////////
	///// RANGS
	//////////////////
	<?php
	
	elseif($fog_q == 4){

		$fog_array_users = array();
		$fog_i = 0;
		$fog_result = $fog_db->query('SELECT pseudo,id from '.FOG_TABLES_PREF.'users where rang<'.$fog_user->row['rang'].(($fog_user->row['rang'] == 6)?(' or id='.$fog_user->row['id']):''));
		while($fog_row = $fog_db->fetch_row($fog_result)){
			$fog_array_users['pseudo'][$fog_row[1]] = $fog_row[0];
			$fog_array_users['id'][$fog_row[1]] = $fog_row[1];
		}
		$fog_smarty->assign('users',$fog_array_users);

		if($fog_action == 1){
			$fog_mod = $_POST['fog_mod']?1:0;
			$fog_nb = $fog_mod?$_POST['fog_uid']:intval(trim($_POST['fog_nb']));
			$fog_txt = htmlentities(trim($_POST['fog_txt']));
			$fog_img = $_POST['fog_img'];
			if(!$fog_mod || in_array($fog_nb,$fog_array_users['id']))
				$fog_db->query('INSERT into '.FOG_TABLES_PREF.'ranks (nb,txt,img,mod) VALUES('.$fog_nb.',\''.$fog_txt.'\',\''.$fog_img.'\',\''.$fog_mod.'\')');
		}elseif($fog_action == 2){
			$fog_rankid = $_GET['fog_rankid'];
			if(isset($_POST['fog_posted'])){
				$fog_rank = $fog_db->fetch_assoc($fog_db->query('SELECT mod,nb,txt,img,id from '.FOG_TABLES_PREF.'ranks where id='.$fog_rankid.' limit 1 '));
				$fog_mod = $_POST['fog_mod']?1:0;
				$fog_nb = $fog_mod?$_POST['fog_uid']:intval(trim($_POST['fog_nb']));
				$fog_txt = htmlentities(trim($_POST['fog_txt']));
				$fog_img = $_POST['fog_img'];
				if((!$fog_rank['mod'] || in_array($fog_rank['nb'],$fog_array_users['id'])) && (!$fog_mod || in_array($fog_nb,$fog_array_users['id'])))
					$fog_db->query('UPDATE '.FOG_TABLES_PREF.'ranks SET nb='.$fog_nb.',txt=\''.$fog_txt.'\',img=\''.$fog_img.'\',mod=\''.$fog_mod.'\' where id='.$fog_rankid);
			}
			$fog_rank = $fog_db->fetch_assoc($fog_db->query('SELECT mod,nb,txt,img,id from '.FOG_TABLES_PREF.'ranks where id='.$fog_rankid.' limit 1 '));
			$fog_smarty->assign('rank',$fog_rank);
		}elseif($_POST['fog_selectedranks']){
			$fog_query = '('.implode(',',(array) $_POST['fog_selectedranks']).')';
			$fog_db->query('DELETE from '.FOG_TABLES_PREF.'ranks where id IN '.$fog_query);
		}
		
		
		$fog_i = 0;
		$fog_array = array();
		$result = $fog_db->query('SELECT mod,nb,txt,img,id from '.FOG_TABLES_PREF.'ranks order by nb');
		while($fog_row = $fog_db->fetch_assoc($result)){
			if(!$fog_row['mod'])
				$fog_array['nb'][$fog_i++] = $fog_row;
			elseif($fog_row['mod'] == 1){
				$fog_array['user'][$fog_i] = $fog_row;
				$fog_array['user'][$fog_i++]['user'] = $fog_ub->Get($fog_row['nb'],'pseudo');
			}
		}
		$fog_smarty->assign('ranks',$fog_array);
		
		$fog_array = array();
		$fog_i=0;
		$fog_dirpath = FOG_DIR.'img/ranks/';
		if ($fog_dir = opendir($fog_dirpath)){
    		while ($fog_file = readdir($fog_dir))
       			if(is_file($fog_dirpath.$fog_file)){
					$fog_file_info = getimagesize($fog_dirpath.$fog_file);
            		if ((strPos($fog_file,'.jpg') && $fog_file_info[2] === 2)||(strPos($fog_file, '.gif') && $fog_file_info[2] === 1)||(strPos($fog_file, '.png') && $fog_file_info[2] === 3))
					  $fog_array[$fog_i++] = $fog_file;
				}
    		closedir($fog_dir);
		}
		$fog_smarty->assign('dispos',$fog_array);
		
		unset($$fog_array,$fog_existent,$fog_row,$fog_i);
	}
	?>

Re: erreur syntaxe SQL

par xTG » 09 janv. 2013, 15:58

mod est un mot clé réservé. ;)
C'est l'opération modulo.

Il faut donc l'échapper :
`mod`
Mais le mieux pour rester portable d'un SGBD à l'autre est encore de bannir ces mots clés de ton modèle.

Re: erreur syntaxe SQL

par bob56@ » 09 janv. 2013, 15:37

oh, désolé :lol:

Wed 2013-01-09 11:47:11 [mon ip] ERROR : PHP User Warning : SQL Error - Query :
SELECT mod,nb,txt,img,id from fog_ranks order by nb
Error : 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 'nb,txt,img,id from fog_ranks order by nb' at line 1 /htdocs/forum/libs/required/classes.inc#306

Wed 2013-01-09 11:47:28 [mon ip] ERROR : PHP User Warning : SQL Error - Query :
INSERT into fog_ranks (nb,txt,img,mod) VALUES(1,'','5stars.gif','1')
Error : 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 'mod) VALUES(1,'','5stars.gif','1')' at line 1 /htdocs/forum/libs/required/classes.inc#306

Wed 2013-01-09 11:47:44 [mon ip] ERROR : PHP User Warning : SQL Error - Query :
INSERT into fog_ranks (nb,txt,img,mod) VALUES(0,'admin','5stars.gif','0')
Error : 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 'mod) VALUES(0,'admin','5stars.gif','0')' at line 1 /htdocs/forum/libs/required/classes.inc#306

Re: erreur syntaxe SQL

par xTG » 09 janv. 2013, 15:29

Un :
echo $query;
Et une copie du résultat nous aiderai pas mal...

Car là tu nous montre un os en nous demandant si le chien est bien portant. :mrgreen:

erreur syntaxe SQL

par bob56@ » 09 janv. 2013, 14:56

Bonjour et Meilleurs voeux à Tous :D ,



voilà ce qui m'amène: j'ai une erreur de syntaxe SQL , si vous avez une idée, d'ou provient l'erreur ? Par avance merci
 function query($query)
	    {
	        global $fog_log,$fog_ip;
	        if ($this->connected===false)return false;
	        if (!preg_match('`/^\s*select.*\bunion\s+select\s/si`',$query)) {
	            ++$this->nb_queries;
	            $fog_log->add('VERBOSE','SQL_QUERY',$query);
	            $deb = microtime();
	            $this->result = $this->driver->query($query,$this->id);
	            $this->query_time += FOGMicroDif($deb);
	            if ($this->result !== false)
	                return $this->result;
	            trigger_error('SQL Error - Query : <br /> ' . stripslashes(htmlentities($query)) . '<br /> <strong>Error</strong> : ' .  stripslashes(nl2br(htmlentities($this->error()))),E_USER_WARNING);
	        }else
	            trigger_error('Hacking Attempt - Query : <br /> ' . stripslashes(htmlentities($query)) ,E_USER_ERROR);
	        $this->connected = false;
	        return false;
        }