1

基本的に、PHP を使用して MySQL データベースを更新しようとしており、HTML フォームでテストしています。

これをAndroidアプリで使用する予定なので、そこから値が取得されますが、現在、PHPコードをテストするためにHTMLフォームでテストしています。HTML フォームでテストしているときに、適切なデータが現在更新されていません。

これを引き起こすコードの何が問題なのですか?

PHP コード:

/*
* Following code will create a new product row
* All player details are read from HTTP Post Request
*/

// array for JSON response
$response = array();

// check for required fields
if (isset($_POST['PlayerID']) && isset($_POST['Score']) && isset($_POST['LastHolePlayed'])&&     
isset($_POST['Overall'])) {

$playerid = $_POST['PlayerID'];
$score = $_POST['Score'];
$lastholeplayed = $_POST['LastHolePlayed'];
$overall = $_POST['Overall'];

// include db connect class
require('db_connection.php');



// mysql inserting a new row
$result = mysql_query("UPDATE `week1` SET Score = `$score`, LastHolePlayed = `$lastholeplayed`, 

Overall` = $overall` WHERE PlayerID = `$playerid`");


// check if row inserted or not
if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "Player successfully added.";

    // echoing JSON response
    echo json_encode($response);
} else {
    // failed to insert row
    $response["success"] = 0;
    $response["message"] = "An error occurred.";

    // echoing JSON response
    echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";

// echoing JSON response
echo json_encode($response);
}

html コード:

<form action="http://localhost/realdeal/updateplayer.php" method="POST">
PlayerID <input type="text" id='PlayerID' name='PlayerID'><br/><br/>
Score <input type="text" id='Score' name='Score'><br/><br/>
LastHolePlayed <input type="text" id='LastHolePlayed' name='LastHolePlayed'><br/><br/>
Overall <input type="text" id='Overall' name='Overall'><br/><br/>

    &nbsp;  <input type="submit" value="submit">

</form>
4

3 に答える 3

2

クエリを次のように変更します。

$result = mysql_query("UPDATE `week1` SET `Score` = '$score', `LastHolePlayed` = '$lastholeplayed', `Overall` = '$overall' WHERE `PlayerID` = '$playerid'");
于 2013-04-24T20:45:47.137 に答える
0

あなたのSQL文は間違っています。上記のように書くことも、次のようにアポストロフィー記号なしでステートメントを直接書くこともできます。

また、「適切なデータが更新されていない」とはどういう意味ですか? 発生しているエラーを指定/記載すると、より明確になります。

于 2013-04-24T21:04:35.950 に答える
0

クエリ区切り文字を修正する必要があります。

$result = mysql_query("UPDATE `week1` SET Score = '$score', `LastHolePlayed` = '$lastholeplayed', `Overall` = '$overall' WHERE `PlayerID` = '$playerid'");

列名とテーブル名がバックティック (`) で囲まれ、値が一重引用符 (') で囲まれていることに注意してください。

また、クエリをデバッグするときは、常に MySQL エラーを確認してください。

$result mysql_query(...) or die("Query failed: " . mysql_error() );

最後に、クエリが SQL インジェクション攻撃にさらされることを知っておく必要があります。クエリに含める前に、常に入力データをクリーンアップしてください。

于 2013-04-24T21:00:49.167 に答える