我正在爲我的數據庫使用PHPMyAdmin。當點擊我的HTML頁面上的一個按鈕,下面是執行:無法更新函數中的mysql表,但成功的查詢響應
var stopID = 10; // Sample
var stopPOV = "129.29,158.58"; // Sample
$.ajax({
url: "getFromDB.php",
type: "post",
dataType: 'json',
data: {
action: "setStopPOV",
stopID : stopID,
stopPOV : stopPOV
},
success: function(data) {
//alert(data);
}
});
我getFromDB.php是這樣的:
<?php
require_once('connect.php');
require_once('db_functions.php');
if (isset($_POST["action"]) && !empty($_POST["action"])) {
$action = $_POST["action"];
switch ($action) {
case "setStopPOV":
$stopID = $_POST['stopID'];
$stopPOV = $_POST['stopPOV'];
setStopPOV($stopID, $stopPOV);
break;
}
}
?>
最後,setStopPOV(...)內db_functions.php功能如下:
<?php
function setStopPOV($stopID, $stopPOV) {
global $dbc; // Set in connect.php
$query = "UPDATE stop ";
$query .= "SET STOP_POV = '{$stopPOV}' ";
$query .= "WHERE STOP_ID = '{$stopID}'";
$result = @mysqli_query($dbc, $query) or die("Error updating record: " . mysqli_error($dbc));
if ($result) {
file_put_contents('function_result.txt', "Record updated successfully" . PHP_EOL, FILE_APPEND);
} else {
file_put_contents('function_result.txt', "Error updating record" . PHP_EOL, FILE_APPEND);
}
}
?>
此輸出'記錄已更新成功'信息的txt文件,但沒有更新數據庫中。
但是,如果getFromDB.php是這樣的:
<?php
require_once('connect.php');
require_once('db_functions.php');
// NEW CODE ADDED START
$id = 10;
$pov = "129.29,158.58";
$qry = "UPDATE stop ";
$qry .= "SET STOP_POV = '{$pov}' ";
$qry .= "WHERE STOPID = '{$id}'";
$result = @mysqli_query($dbc, $qry) or die("Error updating record: " . mysqli_error($dbc));
if ($result) {
file_put_contents('function_result.txt', "Record updated successfully" . PHP_EOL, FILE_APPEND);
} else {
file_put_contents('function_result.txt', "Error updating record" . PHP_EOL, FILE_APPEND);
}
// NEW CODE ADDED FINISH
...
// The rest is previous code as shown above
if (isset($_POST["action"]) && !empty($_POST["action"])) {
$action = $_POST["action"];
switch($action) {
// Code
}
}
?>
我直接進入頁面(即本地主機/ getFromDB.php),TXT文件有「記錄成功更新」,並且數據庫更新!
重要的是要注意,我的db_functions.php包含其他功能,從數據庫檢索信息,他們工作正常。例如,這是在db_functions.php
function getRouteList() {
global $dbc;
$query = "SELECT RTE_NAME, TRAV_DIR ";
$query .= "FROM route";
$result = @mysqli_query($dbc, $query) or die("Error in Selecting " . mysqli_error($dbc));
// Do whatever I want with the retrieved data
}
我想盡一切辦法讓更新工作,一個這樣的功能,但我一直沒能來。我錯過了什麼?
作爲另一個調試步驟,如果在原始的getFromDB.php文件中,將setStopPOV($ stopID,$ stopPOV);'set'更改爲'setStopPOV(10,「129.29,158.58」);'?這一步將有助於確定問題是否與將參數正確傳遞給getFromDB.php相關,或者問題是否在其他地方。 –
@BenHolness正在通過setStopPOV函數接收/解析傳遞的參數,並得到相同的結果。 '記錄更新成功',數據庫沒有變化。 – Ali
您的$ _POST是否包含您期望的內容?你有沒有試過傾銷它?調試101. – purpleninja