erreur mysql_real_escape_string

Répondre
gesualda
le 22/10/2005 à 17:22
gesualda
Bonjour à tous

En place de " addslahes()" je voudrais utiliser "mysql_real_escape_string()" qui me semble d'aprèsles diverses lectures serait plus approprié.
Mais cela me donne l'erreur suivante:

<?php
mysql_real_escape_string($_SESSION['soc']);
mysql_real_escape_string($_SESSION['nom']);
mysql_real_escape_string($_SESSION['prenom']);

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost'
?>


Ma config:
- apache 2055
- php 505

Les magic_quotes_gpc() sont sur on.

D'ou peut provenir cette erreur ?

Merci
mobman02
le 22/10/2005 à 17:34
mobman02
Cette fonction sert a proteger des chaine mysql, la tu l'utilise sur des session... :/

L'erreur vien pour moi de la connexion a la base de donnée.
Si tu ne passe pas le link en second parametre de la fonction, php prend la dernier connexion.
Et la apparement la connexion n'est pas bonne, ou il n'en trouve pas.

Li la doc tu comprendra surement mieu qu'en m'ecoutant :) lol

extrait :

Liste de paramètres

unescaped_string

La chaîne à échapper.
link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

http://fr.php.net/mysql_real_escape_string
http://damienalexandre.fr/
gesualda
le 22/10/2005 à 17:36
gesualda
Merci de répondre,

ben... en fait lorsque j'utilise "addslashes", ca fonctionne correct, c'est ca le problème donc je pense pas à un problème de connection
Bzh
le 22/10/2005 à 17:53
Bzh
addslashes est une fonction totalement indépendante de mysql !!!! Ce qui n'est pas le cas de mysql_real_escape_string !!!!

mysql_real_escape_string à besoin que tu sois connecté à ta base de donnée ....

C' est comme mysql_query !!!!! Il faut que tu te connecte à ta base avant d' utiliser cette fonction...

mysql_real_escape_string n' est pas indépendante !!!

Bye...
gesualda
le 22/10/2005 à 17:58
gesualda
merci Bzh,

mais je suis connecté à la base sans aucune erreur

mysql_select_db($eurotrad_data, $eurotrad_connect);

$req_tbl_1 = "INSERT INTO client_tbl (id_clients,date,nom,prenom,email,soc,nombre) VALUES
('','$date','$nom','$prenom','$email','$soc','$nombre')";
$resultat = mysql_query($req_tbl_1) or die("Erreur d'Insertion dans la base : ". $req_tbl_1 .'<br/>'. mysql_error());
gesualda
le 22/10/2005 à 18:09
gesualda
Bof, maintenant ca fonctionne à nouveau.. bizarre ce machin.
Par contre dans la table lorsque les variables sont insérées il devrait y avoir les slashes devant les " " ou '' ,ben plus de slahes à l'insertion.
Bzh
le 22/10/2005 à 18:18
Bzh
Si, si, avant tous les caratères actifs dans une requette sql !!!
gesualda
le 22/10/2005 à 18:25
gesualda
V'la, ca fonctionne, j'ai procédé comme cela
<?php
$soc = mysql_real_escape_string($_SESSION['soc']);
$nom = mysql_real_escape_string($_SESSION['nom']);
$prenom=mysql_real_escape_string($_SESSION['prenom']);
?>


En fait, je suis entrain d'apprendre à utiliser les variables de session, d'ou peut-etre mon problème.
J'ai voulu inserer directement les données des variables de session dans la table, et c'est la que ca coince.

Merci
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours