0
有以下困難。將數據從jQuery post處理到pg_query()時遇到困難;
我目前正在創建一個表單。此表單由HTML製作並由jQuery控制。
表格代碼如下;
<div id="form">
<form>
<label>ID :</label>
<input type="text" id="clientid" /><br /><br />
<label>Name :</label>
<input type="text" id="name" /><br /><br />
<label>IP Address :</label>
<input type="text" id="ipaddress"/><br /><br />
<label>Status :</label>
<input type ="text" id ="status" />
<input type="button" id="button" value="Insert" /><br /><br /><br />
<label id="response"></label>
</form>
現在,這個表單會提取用戶數據,並被下面的jQuery腳本處理;
// Start jQuery script
// jQuery for dynamic adding without complete page reloads
//Wait for document readiness
$('document').ready(function() {
// Define submit button and action
$('#button').click(function() {
// Assign variable
if ($('#clientid').val() == "") {
alert("Enter Client ID");
return false;
} else {
var clientid = $('#name').val();
}
// Assign variable
if ($('#name').val() == ""){
alert("Enter Client full name");
return false;
} else {
var name =$('#name').val();
}
// Assign variable
if ($('#ipaddress').val() == "") {
alert("Enter Client owned IP address");
return false;
} else {
var ipaddress = $('#ipaddress').val();
}
// Assign variable
if ($('#status').val() == "") {
alert("Enter client status");
return false;
} else {
var status = $('#status').val();
}
// When variables are known, continue processing and POST'ing
// Posting to seperate PHP file to complete
jQuery.post("processing/addC.php", {
clientid: clientid,
name: name,
ipaddress: ipaddress,
status: status
},
function(data, textStatus) {
if (data == 1) {
$('#response').html("Insert successful!");
$('#response').css('color', 'green');
} else {
$('#response').html("Insertion failure. Please try again or restart.");
$('#response').css('color', 'red');
}
});
});
});
這段代碼很明顯地將變量通過POST傳遞給addC.php。
addC.php包含以下代碼:
<?php
// Get current connection
include 'dbconnect.php';
$clientid = $_POST['clientid'];
$name = $_POST['name'];
$ipaddress = $_POST['ipaddress'];
$status = $_POST['status'];
$query = pg_query_params(
$dbconnection,
'INSERT INTO clients(clientid, name, ipaddress,status) VALUES ($1, $2, $3, $4);',
array($clientid, $name, $ipaddress, $status)
);
if(pg_affected_rows($query)>0){
echo "1";
}else{
echo "2";
}
?>
這段代碼的期望的結果是,如果語句返回1,因此jQuery的可以創建一個漂亮的綠色消息說數據庫插入正確的去了。
現在,我驗證了pg_query();語法是正確的,這個代碼本身肯定有問題。這裏似乎是什麼問題?
編輯:
跟隨誤差; 警告:pg_query_params():查詢失敗:錯誤:整數無效輸入語法:"邁克爾"在/Applications/XAMPP/xamppfiles/htdocs/LoginHQ/processing/addC.php上線
如果有4個區域的不適合到目標列,你怎麼知道?在PHP代碼中突出的是缺少錯誤檢查和日誌記錄。 –
嗨丹尼爾,感謝您的評論。據你所知,最有效的錯誤檢查方法是什麼?當「pg_query_params」的返回值爲空時,在錯誤通道上輸出「pg_last_error()」時爲 – MichaelP
。如果你的項目還沒有錯誤記錄策略,只需使用php的'error_log()'。如果你有權訪問postgres日誌文件,你也可以查看它們。 –