2016-04-13 8 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の中にある場合、PHPスクリプトへのAJAX呼び出しを実行する方が良いです。その機能をjavascriptにすることで、ユーザーはデータベースに関連するコードを見て、簡単にハックすることができます。 –

+0

はい、それはjavascriptの中にあります。データベース内の内容を最終的に表示すると、5ではなく0が表示されます。 –

0

警告: SQLインジェクション、これをオンラインにしないでください! PDOを使用するかエスケープ(mysqli_escape_string())し、''を削除してください。

+0

mysqli_escape_string()はどこに置くのですか? –

+0

このように: '$ qs =" UPDATEの得点SET GrammarScore = ".mysqli_escape_string($ avegs)" WHERE applicantID = ".mysqli_escape_string($ qidScores);' – Andreas

関連する問題