0

我是php的初学者。我正在尝试制作一个 Web 应用程序,其中用户分数会针对他回答的每个正确答案进行更新。脚本如下

<?php
$username="surendra";
$useranswer=$_REQUEST['option'];
$qno=$_REQUEST['a'];

  $con=mysqli_connect("localhost","root","","gk");

// 检查连接

  include('connection.php');
    $sql1="SELECT * FROM questions  WHERE  qid=$qno";
    $result=mysql_query($sql1);
while ($row = mysql_fetch_array($result))
{
    $correctanswer=$row['answer'];

}

   include('connection.php');
     $sql1="SELECT * FROM contest  WHERE  username LIKE '".$username."'";
     $result=mysql_query($sql1);
while ($row = mysql_fetch_array($result))
{
    $points=$row['points'];

}   

    if ($username=$correctanswer)
      {
         $con=mysqli_connect("localhost","root","","gk");
          // Check connection
       if (mysqli_connect_errno())
         {
          echo "Failed to connect to MySQL: " . mysqli_connect_error();
          }

        mysqli_query($con,"UPDATE contest SET points=$points+5
         WHERE username =$username");

          mysqli_close($con);
         }

  ?>

更新功能不起作用请帮助我吗?

4

3 回答 3

1

尝试$username用单引号括起来:

mysqli_query($con,"UPDATE contest SET points=$points+5 WHERE username = '$username'");

if ($username==$correctanswer)其他人发布的一样。

然后我建议你学习如何绑定参数和使用准备好的语句。在这里阅读

于 2013-03-04T15:17:43.427 回答
0

你的代码中有include('connection.php');两次。

if ($username=$correctanswer)应该是==

考虑使用 mysqli_ 函数或 PDO 并保护您的代码免受 SQL 注入。

于 2013-03-04T15:18:14.127 回答
0

你错过了一个=标志

if ($username=$correctanswer)
           --^

尝试:

if ($username == $correctanswer)

另外,$username需要引用:

mysqli_query($con,"UPDATE contest SET points = $points + 5 WHERE username ='".$username."'");
于 2013-03-04T15:13:52.493 回答