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 从表单错误更新的主要内容,如果未能解决你的问题,请参考以下文章
我无法使用 PHP 和 jQuery 将表单数据更新到 MySQL