Une requête UPDATE qui me donne un message d'erreur

Invité
Invité n'ayant pas de compte PHPfrance

04 juil. 2005, 10:50

Bonjour,
Voici mon script :
<?php
$host="************";
$user="***********";
$mpasse="***********";
$database="*************";
$image='$_POST[url]';

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible");

$db = mysql_select_db($database)
or die("Sélection de la base impossible");

$sql = "UPDATE image_1 SET url='$image'";
or die ("La requête à échoué");
$res = mysql_query($sql)
or die ("La requête à échoué");
mysql_close($connexion);
header ("*****************");
?>

Quelqu'un pourrait-il me dire où se trouve l'erreur car je ne vois vraiment rien.

Eléphant du PHP | 137 Messages

04 juil. 2005, 10:51

Bonjour,
Voici mon script :
<?php
$host="************"; 
$user="***********"; 
$mpasse="***********"; 
$database="*************";
$image='$_POST[url]';

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible");

$db = mysql_select_db($database) 
or die("Sélection de la base impossible");

$sql = "UPDATE image_1 SET url='$image'";
     or die ("La requête à échoué");
$res = mysql_query($sql)
      or die ("La requête à échoué");
mysql_close($connexion);
header ("*****************");
?>

Quelqu'un pourrait-il me dire où se trouve l'erreur car je ne vois vraiment rien.

VaN
Mammouth du PHP | 1107 Messages

04 juil. 2005, 10:51

image_1 c'est le nom de ta table ?

Eléphant du PHP | 137 Messages

04 juil. 2005, 10:52

Oui, c'est exact.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 10:52

MySQL peut te le dire lui-même si tu lui demandes :
rajoute cette fonction dans ton "or die()" : mysql_error()

cela affichera l'erreur qui est provoquée
$sql = "UPDATE image_1 SET url='$image'";
$res = mysql_query($sql)
      or die (mysql_error());
Modifié en dernier par ouckileou le 04 juil. 2005, 10:53, modifié 2 fois.

Eléphant du PHP | 137 Messages

04 juil. 2005, 10:53

Je l'ai l'erreur, désolé de pas l'avoir donnée avant :
Parse error: parse error, unexpected T_LOGICAL_OR in /home3/c/cavero/www/url.php on line 15

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 juil. 2005, 10:53

Quand tu écrit ça, PHP met dans $image la CHAINE DE CARACTERE $_POST[url] et non pas le contenu de la variable
$image='$_POST[url]'; 
Ensuite, quand tu fait
$sql = "UPDATE image_1 SET url='$image'"; 
PHP l'interprete comme ça :
$sql = "UPDATE image_1 SET url='$_POST[url]'";
Et il ne sait pas le résoudre

Donc 3 conseils :
-pas de ' autours des variables si tu les affecte
-sort les variables des chaines de caractère sinon PHP ne sait pas interpreter les tableau
-quand tu met une chaine de caractère comme index d'un tableau, met des "

code corrigé :
<?php
$host="************";
$user="***********";
$mpasse="***********";
$database="*************";
$image=$_POST[url];

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible");

$db = mysql_select_db($database)
or die("Sélection de la base impossible");

$sql = "UPDATE image_1 SET url='".$image."'";
or die ("La requête à échoué");
$res = mysql_query($sql)
or die ("La requête à échoué");
mysql_close($connexion);
header ("*****************");
?> 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

VaN
Mammouth du PHP | 1107 Messages

04 juil. 2005, 10:54

enleve le ; de
$sql = "UPDATE image_1 SET url='$image'";

Parse error: parse error, unexpected T_LOGICAL_OR in /home3/c/cavero/www/url.php on line 15
tu avait mit 2 ; sur la ligne de ta requete

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 10:55

cela vient d'un "or" inutile, je dirai celui après l'attribution du code SQL à ta variable requête

ici :
$sql = "UPDATE image_1 SET url='".$image."'";
or die ("La requête à échoué"); 

Eléphant du PHP | 137 Messages

04 juil. 2005, 11:05

Désolé, ça me donne toujours le même message d'erreur D'où ça pourrait venir?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 11:15

tu peux reposter ton code corrigé suivant toutes les propositions qui ont été faites ?

VaN
Mammouth du PHP | 1107 Messages

04 juil. 2005, 11:16

tu as bien enlevé le ; de cette ligne ?
$sql = "UPDATE image_1 SET url='$image'"; 
     or die ("La requête à échoué"); 

==>
$sql = "UPDATE image_1 SET url='$image'"
     or die ("La requête à échoué"); 

Si oui, quel est le msg d'erreur ? quelle ligne ?

Eléphant du PHP | 137 Messages

04 juil. 2005, 12:08

En fait, c'est bon, ça marche
Merci!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 juil. 2005, 12:13

C'était quoi l'erreur ?

Ca peut servir pour d'autre personnes ... :P
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 137 Messages

04 juil. 2005, 12:15

C'était un point virgule en trop à la fin de ma requête UDPATE
:D