更新在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> </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'";