2016-04-13 68 views
0

如何將此int值置於我們的數據庫中?我試過在$ _POST之前放置(int)和intval,但它仍然不起作用?除了該int值的轉換(?)以外,其他所有工作都可以放入我們的數據庫中。我們錯過了代碼中的任何內容嗎?先謝謝你。將整型變量插入到數據庫中

function computeScoregrammar(){ 
         // code for computing the score here 
         aver = 5; 

<?php 
//db connection here 
    $avegs = $_POST['aver']; 
    $qidScores = 4; 
//below part is not yet complete for we are only trying to update a sample data in the database 
    if($qidScores == 4){ 
     $qs = "UPDATE scores SET GrammarScore = '$avegs' WHERE applicantID = '$qidScores'"; 
     mysqli_query($conn,$qs); 
     mysqli_close($conn); 
    } 
    else { 
     //else statement here 
    } 
     ?>  
+0

如果你echo $ _POST ['aver']',你會得到什麼? – larsAnders

+0

是你函數中的''標籤嗎?或者是代碼的不同部分? – DevDonkey

+0

是的,它是一個函數內的php代碼。每次點擊具有'onClick = computeScoregrammar()'的按鈕時,我們必須更新/插入分數到數據庫中。將一段php代碼放在一個函數中不行嗎? –

回答

0

試試:

$qs = "UPDATE scores SET GrammarScore = $avegs WHERE applicantID = '$qidScores'";

$avegs不使用''。如果使用'',則$avegs將被視爲字符串。

+0

仍然不顯示aver的值 –

+0

運行'echo $ avegs'時會發生什麼? 如果該函數在JavaScript內部,最好對AJAX調用php腳本。把這個函數放到javascript中,使用戶可以看到與數據庫相關的代碼,並且很容易被黑客入侵。 –

+0

是的,它是在一個JavaScript裏面。當我們最終顯示數據庫中的內容時,它會顯示0而不是5, –

0

警告: SQL注入,不要把這個在線!使用PDO或轉義(mysqli_escape_string())並刪除''

+0

我在哪裏把mysqli_escape_string()? –

+0

像這樣:'$ qs =「UPDATE scores SET GrammarScore =」.mysqli_escape_string($ avegs)。「WHERE applicantID =」.mysqli_escape_string($ qidScores);' – Andreas