2013-03-16 4 views
0

У меня есть эта часть кода, которая позволяет пользователю редактировать свой профиль из формы с помощью php и mysql, когда я эхо передал или изменил значение, которое он отображает справа и значение редактирования, но ничего не изменится в базе данных. кто поможет мне решить эту проблемуphp mysql update query

это та часть, я обновляя запрос

если вам нужны какие-аддитивных файлы, дайте мне знать, и спасибо

search.php
//submit whatthe user types into the database 

    $fname = $_POST['fname']; 
    $lname = $_POST['lname']; 
    $country = $_POST['country']; 
    $spec = $_POST['specialization']; 

    ///errroor in updating the dataabse 


    $edit_query = mysql_query("UPDATE user SET first_name= '$fname', last_name= '$lname', address= '$country', specialization_name= '$spec' WHERE user_name = '$username'") or die(mysql_error()); 
+0

где находится '$ username'? – tradyblix

+0

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – j0k

ответ

0

Вам нужно инициализировать переменную userName.

1

$username не определен. В результате запрос выполняется без строки базы данных.

Используйте prepared statements вместо sql injectionablemysql_query().

+0

ahhhh $ username приходит из сеанса, который я кричал на каждую защищенную страницу. – user2172837

0

Попробуйте .....

$edit_query = mysql_query("UPDATE `user` SET first_name= '".$fname."', last_name= '".$lname."', address= '".$country."', specialization_name= '".$spec."' WHERE user_name = '".$username."'") or die(mysql_error()); 

//Make sure that your $username hold some valid value. 
+0

Синтаксис строки не является проблемой. Если запрос OP не работал, то и ваш не будет. – cHao

+0

удалить die (mysql_error()) и опубликовать сообщение об ошибке. –

0

$username требуется, и ваш запрос vulnerable by sql injection. поэтому использовать mysql_real_escape_string() функция

$fname = mysql_real_escape_string($_POST['fname']); 
$lname = mysql_real_escape_string($_POST['lname']); 
$country = mysql_real_escape_string($_POST['country']); 
$spec = mysql_real_escape_string($_POST['specialization']); 

$edit_query = mysql_query("UPDATE user SET first_name= '$fname', last_name= '$lname', address= '$country', specialization_name= '$spec' WHERE user_name = '$username'") or die(mysql_error());