2014-09-03 7 views
-2

У меня проблема с PHP и MYSQL. Я пытаюсь обновить строку с этим кодом:Не удается ОБНОВИТЬ MySQL в Php

$name=$_POST['Name']; 
$name=mysql_real_escape_string($name); 
$target = 'photo/'.$_FILES['file']['name']; 
$target=mysql_real_escape_string($target); 
$nick=$_POST['nick']; 
$nick=mysql_real_escape_string($nick); 
mysql_query("UPDATE Users SET Name='$name', Image='$target' WHERE Nickname='$nick' ;")or die(mysql_error()); 

Теперь я могу изменить имя, но я не могу изображение !! Это так странно! Html верен!

__UPDATE

Я использую mysql_real_escape_string для всех из них. Я проверил имя столбца.

__UPDATE

Я обновил код, он не возвращают mysql_error

+0

Возможно, фамилия содержит апостроф? ! –

+7

Bobby Tables напомнил здесь – Andy

+1

1) '$ nick', похоже, не существует. 2) вы уязвимы перед самыми легкими инъекционными атаками. 3) «mysql_ *» устарел, используйте «PDO» или «mysqli_ *» вместо –

ответ

0

Как уже упоминалось выше, mysql_ * является устаревшим (как в PHP версии 5.5.0) ... но если у вас уже есть построил часть вашего проекта, используя его, тогда вы можете продолжать использовать его, но вы никогда не должны отправлять пользовательские значения непосредственно в базу данных. избегайте их в первую очередь.

$name = mysql_real_escape_string($_POST['Name']); 
$surname= mysql_real_escape_string($_POST['Surname']); 
+0

OP уже сказал _ «Я использую mysql_real_escape_string для всех из них» _ – Raad

+0

, в этом случае он отправил неправильный код. – Philipp

+0

Похоже, он редактировал свой пост, когда я печатал. Нет проблем :) –

0

Я думаю, что вам, возможно, придется использовать синтаксис:

$_FILES['userfile']['name'] 

не

$_FILES['file']['name'] 

, чтобы получить оригинальное имя файла на клиентской машине. См http://php.net/manual/en/features.file-upload.post-method.php

EDIT Если вы видите значения в ваших переменных, но SQL не работает, как вы думаете, что должен, то вам нужно отладить.

Изменение кода немного так у вас есть:

$update_sql = "UPDATE Users SET Name='$name', Image='$target' WHERE Nickname='$nick' ;"); 
die($update_sql); 
mysql_query($update_sql) or die(mysql_error()); 

и проверить, что в $update_sql (добавляя его к вашему вопросу было бы полезно). Если возникла проблема, исправьте ее и повторите проверку. Как только вы будете счастливы, он должен работать, прокомментируйте линию die.

+0

Нет, целевое значение верно возвращается, проблема связана с запросом – KappS

Смежные вопросы