更新在mysql php中不起作用

更新在mysql php中不起作用,php,Php,当我试图更新数据时,我得到了相同的数据,但没有更新。我找不到哪里出了问题。更新没有显示任何错误,但在查看代码时没有更新。因此,更新不起作用。当我试图更新数据时,我得到了相同的数据,但没有更新。我找不到哪里出了问题。更新没有显示任何错误,但在查看代码时没有更新。因此,更新不起作用 //启动会话 会话_start(); $dbc=mysqli_connect('localhost','root','onlineest'); $sumid=$\会话['sumid']; 如果(!isset($_POS

当我试图更新数据时,我得到了相同的数据,但没有更新。我找不到哪里出了问题。更新没有显示任何错误,但在查看代码时没有更新。因此,更新不起作用。当我试图更新数据时,我得到了相同的数据,但没有更新。我找不到哪里出了问题。更新没有显示任何错误,但在查看代码时没有更新。因此,更新不起作用

//启动会话
会话_start();
$dbc=mysqli_connect('localhost','root','onlineest');
$sumid=$\会话['sumid'];
如果(!isset($_POST['submit']))
{
$\会话['sumid']=$\获取['sumid'];
$query=“选择问题,从sumkey='$sumid'的和中回答;
$data=mysqli_查询($dbc,$query);
if(mysqli_num_rows($data)==1){
$row=mysqli\u fetch\u数组($data);
$question=$row['question'];
$answer=$row['answer'];
echo$question.$sumid;
}
mysqli_close($dbc);
}
如果(isset($_POST['submit']))
{
//$Test=$_会话['testid'];
$question1=$_POST['question'];
$answer1=$_POST['answer'];
$dbc=mysqli_connect('localhost','root','onlineest');
//$dbc=mysqli_connect('localhost','root','onlineest');
$query=“更新总和集问题=$question1,答案=$answer1,其中sumkey=$sumid”;
mysqli_查询($dbc,$query);
echo“添加了新的测试名称”;
回音“”。$1;
mysqli_close($dbc);
//退出();
}
?>
无标题文件
相加
更新[sic]没有显示任何错误

不足为奇-您的代码不会检查错误。尝试在每次mysqli_u操作后检查mysqli_uerror()


顺便说一句,您的代码容易受到SQL注入的攻击,在会话中存储与事务相关的数据是一个非常糟糕的主意。

根据您给定的脚本,首先获取记录,然后更新数据,因此可能是因为它没有显示更新的记录。只要反转条件,就意味着将updateif条件置于抓取查询之上。然后,它将首先更新记录,然后获取更新后的记录

脚本易受SQL注入攻击,以防止使用mysqli\u real\u escape\u string()方法

// Start the session
  session_start();
  $sumid = $_SESSION['sumid'];
  if (isset($_POST['submit']))
 {
     //$Test = $_SESSION['testid'];
     $question1 = $_POST['question'];
     $answer1 = $_POST['answer'];
     $dbc = mysqli_connect('localhost', 'root', '', 'onlinetest');

    // $dbc = mysqli_connect('localhost', 'root', '', 'onlinetest');
     $query = "UPDATE `sum` SET `question` = '$question1', `answer` = '$answer1' WHERE `sumkey` ='$sumid'";

     mysqli_query($dbc, $query);

     echo 'New test name added';
     echo ''.$question1;
     mysqli_close($dbc);
     //exit();
 }



   $dbc = mysqli_connect('localhost', 'root', '', 'onlinetest');

   if (!isset($_POST['submit']))
   {
      $_SESSION['sumid'] = $_GET['sumid'];    

      $query = "SELECT `question`, `answer` FROM `sum` WHERE `sumkey` = '$sumid' ";

       $data = mysqli_query($dbc, $query);
       if (mysqli_num_rows($data) == 1) {

          $row = mysqli_fetch_array($data);
          $question = $row['question'];
          $answer = $row['answer'];

          echo $question . $sumid;

        }
        mysqli_close($dbc); 

   }



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<div>Add sum</div>
<form method="post" action ="<?php echo $_SERVER['PHP_SELF']; ?>">
  <p>
    <label for="textarea"></label>
  <label>Question</label></p>
  <p>
      <textarea name="question" id="question" value="" cols="100" rows="9"><?php echo $question  ?></textarea>
  </p>
  <p><label>Answer</label>&nbsp;</p>
  <p>
    <label for="textarea2"></label>
    <textarea name="answer" cols="100" rows="20" id="answer" value=""><?php echo $answer  ?></textarea>
  </p>
  <p>
    <input type ="submit" value="ADD" name="submit"/>
  </p>

</form>
</body>
</html>
//启动会话
会话_start();
$sumid=$\会话['sumid'];
如果(isset($_POST['submit']))
{
//$Test=$_会话['testid'];
$question1=$_POST['question'];
$answer1=$_POST['answer'];
$dbc=mysqli_connect('localhost','root','onlineest');
//$dbc=mysqli_connect('localhost','root','onlineest');
$query=“UPDATE`sum`SET`question`='$question1',`answer`='$answer1',其中`sumkey`='$sumid';
mysqli_查询($dbc,$query);
echo“添加了新的测试名称”;
回音“”。$1;
mysqli_close($dbc);
//退出();
}
$dbc=mysqli_connect('localhost','root','onlineest');
如果(!isset($_POST['submit']))
{
$\会话['sumid']=$\获取['sumid'];
$query=“从'sum'中选择'question','answer',其中'sumkey`='$sumid';
$data=mysqli_查询($dbc,$query);
if(mysqli_num_rows($data)==1){
$row=mysqli\u fetch\u数组($data);
$question=$row['question'];
$answer=$row['answer'];
echo$question.$sumid;
}
mysqli_close($dbc);
}
?>
无标题文件
相加

1-据我所见,您在代码中混淆了这两件事

2-正如simcbean告诉您的,您需要签出SQL注入(大写字母,这样您就知道这是非常重要的事情)

在决定尝试您的网站之前,请抓紧时间

3-个人建议:

学习PDO准备的声明,一旦你习惯了它,它很容易使用,而且更安全。

有用代码:

if ($result = mysqli_query($link, $query)) {
    // Stuff

}else{
   // See what's wrong with the query
}
编辑:如果数据不是整数,则需要在UPDATE语句中引用值

$query = "UPDATE sum SET question = $question1,answer = $answer1 WHERE sumkey = $sumid";
$query = "UPDATE sum SET question = '$question1',answer = '$answer1' WHERE sumkey = '$sumid'";

您是否打开了错误?尝试在查询周围添加一个try-catch
$query = "UPDATE sum SET question = $question1,answer = $answer1 WHERE sumkey = $sumid";
$query = "UPDATE sum SET question = '$question1',answer = '$answer1' WHERE sumkey = '$sumid'";