2010-07-17 11 views
0

Après avoir téléchargé une photo sur un serveur, je veux l'enregistrer dans la base de données de MySQL, mais pour une raison quelconque, cela ne fonctionne pas. Voici le code pour uploader.php:SELECT et UPDATE ne fonctionnent pas - MySQL

session_start(); 
if(!$_SESSION['userid']) { 
    header("Location: index.php"); 
    exit; 
} 


$con = mysql_connect("host","db","pw"); 
if (!$con) 
    { 
    die('Could not connect: ' .mysql_error()); 
    } 

mysql_select_db("db", $con); 

$sess_userid = mysql_real_escape_string($_SESSION['userid']); 
$query = "SELECT * FROM Members WHERE fldID='$sess_userid' UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]'"); 
$result = mysql_query($query) or trigger_error(mysql_error().$query); 
$row = mysql_fetch_assoc($result); 

Je suis sûr qu'il ya quelque chose de très mal à ma requête, mais je ne peux pas comprendre ce qu'elle est. La photo est définitivement enregistrée dans le dossier. Mais je veux simplement mettre à jour son chemin dans la base de données des utilisateurs pour une utilisation ultérieure. Je vous remercie!

Répondre

2

Comme déjà mentionné, vous ne pouvez pas utiliser ces deux requêtes en même temps.
mais il y a aussi une syntaxe bizarre: vous essayez d'utiliser l'opérateur de concaténation de PHP à l'intérieur de la requête mysql.
Et vous n'avez pas échappé à un paramètre de chaîne - très mauvais!
donc, semble que vous besoin de quelque chose comme

$sess_userid = mysql_real_escape_string($_SESSION['userid']); 
$PortraitPath = mysql_real_escape_string('profileportraits/' . $_FILES['file']['name']); 
$query = "UPDATE Members SET PortraitPath = '$PortraitPath' WHERE fldID='$sess_userid'"; 
+0

colonel Shrapnel, merci beaucoup, je commençais à avoir ce problème, et vous la réparer! JE VOUS REMERCIE!! –

2

Vous pouvez faire deux requêtes distinctes:

UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]' 
WHERE fldID='$sess_userid'; 

Et:

SELECT * FROM Members WHERE fldID='$sess_userid' 
2

Il semble que vous avez essayé de mettre deux requêtes (SELECT et UPDATE) dans une requête qui se traduira par une erreur de requête non valide .

Vous vous demandez simplement pourquoi vous avez besoin de deux requêtes puisque vous connaissez déjà l'ID utilisateur et tout ce que vous voulez mettre à jour. Tout ce dont vous avez besoin est de mettre à jour le chemin du fichier

UPDATE Members SET PortraitPath = 'profileportraits/' . '$_FILES[file][name]' WHERE fldID='$sess_userid'; 
Questions connexes