0

私は、ユーザーがphpとmysqlを使用してフォームからプロファイルを編集できるようにするこのコードを持っています。送信または変更された値をエコーすると、正しい値と編集値が表示されますが、データベースの変更はありません。この問題を解決するのに誰も助けてくれません

これは、クエリを更新している部分です

追加のファイルが必要な場合はお知らせください。

検索.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());
4

4 に答える 4

1

$username定義されていません。その結果、クエリはデータベース行に対して実行されません。

sql Injectionableの代わりに準備済みステートメントを使用してください。 mysql_query()

于 2013-03-16T08:20:42.713 に答える
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());
于 2013-03-16T08:36:13.400 に答える
0

userName 変数を初期化する必要があります。

于 2013-03-16T08:20:32.993 に答える
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.
于 2013-03-16T08:23:22.227 に答える