par
VaN » 12 janv. 2008, 03:55
Bonsoir,
un problème peu commun se pose à moi.
Lors d'un UPDATE de table, ma page web me renvoie une erreur assez commune, à savoir :
Je vais donc tester dans PHPMyAdmin, et là, stupeur, la requête est parfaitement comprise, et interprétée.
Voici la requete qui pose problème :
$sql = sprintf("UPDATE ".$prefixe."users SET user_pass = '".md5($newPass)."' WHERE user_mail = '%s'",
mysql_real_escape_string($mail));
ce qui donne :
Et la structure de la table :
Code : Tout sélectionner
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` text character set latin1 collate latin1_general_cs NOT NULL,
`user_pass` text character set latin1 collate latin1_general_cs NOT NULL,
`user_mail` text NOT NULL,
`user_level` tinyint(4) NOT NULL,
`user_activated` tinyint(4) NOT NULL,
`user_activation_key` text character set latin1 collate latin1_general_cs NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Comment se fait-il que ma requête passe sous PHPMyAdmin, mais pas sur le web ?
Merci d'avance.
Bonsoir,
un problème peu commun se pose à moi.
Lors d'un UPDATE de table, ma page web me renvoie une erreur assez commune, à savoir :
[code]Erreur de syntaxe pr�s de 'WHERE user_mail = '
[email protected]'' � la ligne 1[/code]
Je vais donc tester dans PHPMyAdmin, et là, stupeur, la requête est parfaitement comprise, et interprétée.
Voici la requete qui pose problème :
[php]$sql = sprintf("UPDATE ".$prefixe."users SET user_pass = '".md5($newPass)."' WHERE user_mail = '%s'",
mysql_real_escape_string($mail));[/php]
ce qui donne :
[code]UPDATE users SET user_pass = '83af51ded532f53346a6270ad34d3c5e' WHERE user_mail = '
[email protected]'[/code]
Et la structure de la table :
[code]CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` text character set latin1 collate latin1_general_cs NOT NULL,
`user_pass` text character set latin1 collate latin1_general_cs NOT NULL,
`user_mail` text NOT NULL,
`user_level` tinyint(4) NOT NULL,
`user_activated` tinyint(4) NOT NULL,
`user_activation_key` text character set latin1 collate latin1_general_cs NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;[/code]
Comment se fait-il que ma requête passe sous PHPMyAdmin, mais pas sur le web ?
Merci d'avance.