-2

作成中の Web アプリでクエリを整理しようとしていますが、失敗し続けており、その理由がわかりません! コードは以下のとおりです。

$update = $_GET['update'];
if($update == "true"){
    $setDetails="UPDATE users SET email='{$_POST['email']}', api_key='{$_POST['api_key']}', api_secret='{$_POST['api_secret']}' WHERE username={$_POST['username']}";
    if(mysql_query($setDetails)){
        $updatemsg = '<div class="alert alert-success"><a href="#" class="close" data-dismiss="alert">×</a><strong>Success!</strong> Your details have been updated in our database.</div>';
    }else{
        $updatemsg = '<div class="alert alert-error"><a href="#" class="close" data-dismiss="alert">×</a><strong>Failure!</strong> Your details could not be updated in our database. Please try again later or contact us if this keeps happening.</div>';
    }
}else if($update == "false"){
    $updatemsg = '<div class="alert alert-success"><a href="#" class="close" data-dismiss="alert">×</a><strong>Success!</strong> Your changed were discarded.</div>';
}

アイデア、ヘルプ、ヒントはありますか?さらに下にあるWebアプリはSELECT * FROM users WHERE username='$username'正常に動作するため、データベース接続に問題はありません。

4

2 に答える 2

3
$update = $_GET['update'];
if($update == "true"){
    $setDetails="UPDATE users SET email='{$_POST['email']}', api_key='{$_POST['api_key']}', api_secret='{$_POST['api_secret']}' WHERE username='{$_POST['username']}'";
    if(mysql_query($setDetails)){
        $updatemsg = '<div class="alert alert-success"><a href="#" class="close" data-dismiss="alert">×</a><strong>Success!</strong> Your details have been updated in our database.</div>';
    }else{
        $updatemsg = '<div class="alert alert-error"><a href="#" class="close" data-dismiss="alert">×</a><strong>Failure!</strong> Your details could not be updated in our database. Please try again later or contact us if this keeps happening.</div>';
    }
}else if($update == "false"){
    $updatemsg = '<div class="alert alert-success"><a href="#" class="close" data-dismiss="alert">×</a><strong>Success!</strong> Your changed were discarded.</div>';
}

詳細: あなたのコード:

$setDetails="UPDATE users SET email='{$_POST['email']}', api_key='{$_POST['api_key']}', api_secret='{$_POST['api_secret']}' WHERE username={$_POST['username']}";

正しいコード:

 $setDetails="UPDATE users SET email='{$_POST['email']}', api_key='{$_POST['api_key']}', api_secret='{$_POST['api_secret']}' WHERE username='{$_POST['username']}'";

ユーザー名文字列の前後に ' がありません。

于 2013-07-04T06:22:17.420 に答える
1

このようにしてみてください。username

$setDetails="UPDATE users 
            SET email='{$_POST['email']}', 
                api_key='{$_POST['api_key']}', 
                api_secret='{$_POST['api_secret']}' 
            WHERE username='{$_POST['username']}' ";

また、mysql_*ステートメントは非推奨mysqli_*であるため、使用しないようにしてください。代わりに、ステートメントまたはPDOステートメントを使用してください

于 2013-07-04T06:23:49.193 に答える