2013-10-10 120 views
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上線

+1

如果有4個區域的不適合到目標列,你怎麼知道?在PHP代碼中突出的是缺少錯誤檢查和日誌記錄。 –

+0

嗨丹尼爾,感謝您的評論。據你所知,最有效的錯誤檢查方法是什麼?當「pg_query_params」的返回值爲空時,在錯誤通道上輸出「pg_last_error()」時爲 – MichaelP

+1

。如果你的項目還沒有錯誤記錄策略,只需使用php的'error_log()'。如果你有權訪問postgres日誌文件,你也可以查看它們。 –

回答

0
invalid input syntax for integer: "michael" 

這意味着該列有整型,但你嘗試插入串