mysql 从表单错误更新

Posted

技术标签:

【中文标题】mysql 从表单错误更新【英文标题】:mysql update from form error 【发布时间】:2018-05-10 15:34:13 【问题描述】:

数据库不会更新。问题是什么?我尝试了很多方法,都失败了。我阅读了 mysqli 字典,代码应该可以工作,但事实并非如此。

这是edit.php

<?php require_once 'header.php' ?>
<?php 
	$id = $_GET['id'];
?>
<div class="container">
	
 <form method="post" <?php echo "action='edit_resultu.php?id=".$id."'"; ?>>

	<input type="text" name="track" class="form-control" placeholder="Enter track" maxlength="70"/>
	<button type="submit" class="btn btn-block btn-primary" name="update">Submit</button>
 </form>
</div>
</body>
</html>

这是edit_resultu.php

<?php

if(isset($_POST['update']))

$id = $_GET['id'];
$track = $_POST['track'];

$query = "UPDATE `db71038521`.`packs` SET track = `$track` WHERE `packs`.`id` = '$id'";

if(!mysqli_query($conn, $query))

  die('Could not update data: ' . mysqli_error($query));

echo "Updated data successfully\n";




?>
</body>
</html>

【问题讨论】:

危险:此代码是vulnerable to XSS 用户输入需要转义才能插入到 HTML 文档中!。 危险:你很容易受到SQL injection attacks的影响,你需要自己从defend那里得到。 此代码应生成错误警告:mysqli_query() 期望参数 1 为 mysqli,给定 null。可以?您是否确保 PHP 已配置为向您显示错误? @MasivuyeCokile — 使用带有method="post" 的表单不会阻止您将数据放入查询字符串并在$_GET 中读取。 @Quentin 我没有说它,它只是一个坏主意,你也知道这一点 【参考方案1】:
mysqli_query($conn, $query)

您正在将变量 $conn 传递给 mysqli_query……但您从未为其赋值。

您需要调用mysqli_connect建立与数据库的连接,然后才能查询它。

mysqli_error($query)

mysqli_error的重点是问数据库服务器出了什么问题,而不是分析一串SQL。

您需要传递连接(如上),而不是查询。

【讨论】:

在dbconfig.php文件中赋值。 它可以从数据库中选择数据并将其删除。但不更新... @antuanjoh — 您的问题中没有提到该文件。您没有在问题中显示该文件的内容。您没有在问题中引用它的 include 声明。 错误信息显示$conn 的值为null @antuanjoh — 因此,您的问题的原因大概是“您忘记在 edit_resultu.php 中包含该文件”。

以上是关于mysql 从表单错误更新的主要内容,如果未能解决你的问题,请参考以下文章

将表单数据插入 MySQL?

我无法使用 PHP 和 jQuery 将表单数据更新到 MySQL

在MySQL中插入表单数据?

从表单尝试时记录集不可更新,但如果仅加载子表单,则可以正常工作

使用 AJAX 和 PHP 更新表单字段

laravel mysql数据库同一页面多表单提交表不更新