2013-04-24 4 views
1

В основном я пытаюсь использовать PHP для обновления базы данных MySQL, и я тестирую его с помощью HTML-формы.Обновление базы данных MySQL с помощью PHP

Я намерен использовать это в приложении для Android, так что именно здесь будут взяты значения, но в настоящее время я просто тестирую HTML-форму для проверки кода PHP. Когда я тестирую 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> 
+0

Имена столбцов - обратные кавычки, значения - одинарные кавычки –

+0

Вы уверены, что имена колонок верны? – auicsc

+0

Я считаю, что каждое входное значение должно быть корректным для представления столбца в базе данных mysql? – dGray

ответ

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. Всегда очищайте свои входные данные, прежде чем включать их в запрос.

+0

Спасибо за ваш совет. Я включил запрос на отладку, и он говорит, что я получаю ошибку - «WHERE» PlayerID '=' 6' 'в строке 1 – dGray

+0

@ user2243017 Вам не хватает одной кавычки до значения 6 ('' $ total'') –

+0

Спасибо, что решил эту проблему, хотя, я думаю, что это заявление не делает то, что я хочу , Я пытаюсь обновить строку, в которой идентификатор Player равен идентификатору PlayerID, который был введен там, где, как представляется, здесь используются имена столбцов. – dGray

2

изменить ваш запрос на:

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

Спасибо, я изменил его, но база данных по-прежнему не обновляется. Я получаю вывод - {«success»: 0, «message»: «Произошла ошибка».} – dGray

0

Ваше заявление sql неверно. Вы можете написать, как указано выше, или вы можете напрямую написать инструкцию без символа апострофа as - $ result = mysql_query ("UPDATE week1 SET Score = $ score, LastHolePlayed = $ lastholeplayed, общий = $ общий WHERE PlayerID = $ playerid") ;

Кроме того, вы можете объяснить, что вы подразумеваете под «соответствующими данными не обновляется». Было бы яснее, если вы сообщите/сообщите об ошибке, которую вы получаете.

+0

Спасибо за ваши советы – dGray

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