如何在PHP、sqli中更新记录

如何在PHP、sqli中更新记录,php,html,mysql,sql,Php,Html,Mysql,Sql,我想更新数据库中的记录并在表中显示,但这段代码我无法理解发生了什么问题。请通知我谢谢。我非常感谢你,亲爱的。我怎样才能纠正它??这段代码如何可能以及出现了什么问题 <?php include("connection.php"); $edit_rec = $_GET['edit']; $query= "SELECT * from card_rec where id='$edit_rec'"; $run = mysqli_query($con,$query); $row = mysqli

我想更新数据库中的记录并在表中显示,但这段代码我无法理解发生了什么问题。请通知我谢谢。我非常感谢你,亲爱的。我怎样才能纠正它??这段代码如何可能以及出现了什么问题

<?php
include("connection.php");

$edit_rec = $_GET['edit'];

$query= "SELECT * from card_rec where id='$edit_rec'";

$run = mysqli_query($con,$query);
$row = mysqli_fetch_row($run);

if ($_POST) 
{
    $name = $_POST['name'];
    $fname = $_POST['fname'];
    $school = $_POST['school'];
    $address = $_POST['address'];
    $contact = $_POST['contact'];
    $id = $_POST['id'];

    $query1="UPDATE card_rec SET name='$name', fname='$fname', school='$school',address='$address',contact= '$contact' WHERE id='$id'";

    if ($query1) {
        echo "<script>alert('Record Update'); window.location = 'card_rec.php' </script>";
    }
    else
    {
        echo "not update";
    }
}

?>

<!DOCTYPE html>
<html>
<head>
    <title>Update</title>
</head>
<body>

<form method="post">
    <input type="hidden" name="id" value="<?php echo $row[0] ?>"><br>
<input type="text" name="name" value="<?php echo $row[1] ?>"><br>
<input type="text" name="fname" value="<?php echo $row[2]  ?>"><br>
<input type="text" name="school" value="<?php echo $row[3]  ?>"><br>
<input type="text" name="address" value="<?php echo $row[4]  ?>"><br>
<input type="text" name="contact" value="<?php echo $row[5] ?>"><br>
<input type="submit" name=" submit">
</form>

</body>
</html>
使用mysqli_error()函数获取最近函数调用的错误描述

$query= "SELECT * from card_rec where id='$edit_rec'";
$run = mysqli_query($con,$query) or die (mysqli_error($con));



$query1="UPDATE card_rec SET name='$name', fname='$fname', school='$school',address='$address',contact= '$contact' WHERE id='$id'";

if (mysqli_query($con, $query1)) {
    echo "updated";
} else {
    echo "not updated";
}

当然,您没有运行上一个查询,因此它不会做任何事情。你的代码需要一些优化

始终检查$\u POST操作,不要为空,并尝试使用一个类,而不是这个混乱的代码

   <?php

$serverName = "localhost";
$username = "username";
$password = "password";
$dbName = "myDB";

// Create connection
$conn = new mysqli($serverName, $username, $password, $dbName);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if (isset($_POST) and !empty($_POST)) {

$name = $_POST['name'];
$fname = $_POST['fname'];
$school = $_POST['school'];
$address = $_POST['address'];
$contact = $_POST['contact'];
$id = $_POST['id'];

$query1="UPDATE card_rec 
         SET 
         name='$name', 
          fname='$fname', 
           school='$school', 
           address='$address', 
           contact= '$contact' 
            WHERE id='$id'";

if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
 echo "Error updating record: " . $conn->error;
}

}

您的脚本有风险,您甚至可以查看一下在使用过程中发生了什么。您不知道哪里出了问题,因为您没有检查代码中的错误。永远不要假设代码总是能够完美地工作。用于从数据库获取详细的错误消息。您从未执行过查询或向其传递过db连接,因此您的更新从未发生过。@johncode“使用mysqli_error()从数据库获取详细的错误消息”请参阅上面我对他们的评论;-)无法检查他们没有做什么lol