如何使用PHP更新表中的值

如何使用PHP更新表中的值,php,mysql,Php,Mysql,如何使用PHP实际更新表的值?此代码未显示任何错误,也未更新 <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $dbname = 'DB'; $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname); if(mysqli_connect_error()) { die("couldn't connect" . $conn->connect_error());

如何使用PHP实际更新表的值?此代码未显示任何错误,也未更新

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_error()) 
{
die("couldn't connect" . $conn->connect_error());
}
echo ("connected successfully");
$id = $_POST['Id'];
$name = $_POST['Name'];
$dept = $_POST['Department'];
$update = "update info set Name='$name', Department='$dept' where Id='$id'";
if($conn->query(update) === TRUE) {
echo ("Data updated successfully");
} 
else
{
echo ("Data cant be updated" . $conn->error());
}
$conn->close();
?>

希望这个能帮助你

$update = "update info set Name='".$name."', Department='".$dept."' where Id='".$id."'";

检查代码的这一部分:

if($conn->query(update) === TRUE) {
应在哪里:

if($conn->query($update) === TRUE) {
  • 确保根据MySQL数据库使用正确的凭据(主机、用户名、密码、数据库名称)
  • 此外,查询中使用的表名和列名应该正确
  • 确保与查询的条件部分匹配(
    …其中Id='$Id'
    )。通过在
    PhpMyAdmin
    页面中运行查询,或
    Search
    您尝试在表单中输入的ID来检查它
  • 确保传递的变量(
    $\u POST[]
    )的名称正确
  • 区分大小写
尝试将您的连接更改为:

$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
执行查询的另一种方法是:

mysqli_query($conn,$update);
建议: 在将变量值用于查询之前,应使用
mysqli\u real\u escape\u string()
函数对变量值进行转义:

$name = mysqli_real_escape_string($conn,$_POST["Name"]);
或者更好,这样您就不必担心将变量绑定到查询中,也可以防止,您应该转到
mysqli_*prepared语句

if($stmt = $conn->prepare("UPDATE info SET Name=?, Department=? WHERE Id=?")){

  $stmt->bind_param("ssi",$_POST['Name'],$_POST['Department'],$_POST['Id']);
  $stmt->execute();
  $stmt->close();

}
试试这个

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$conn) 
{
die("ERROR CONNECTING TO DATABASE!");
}
echo "Connected Successfully";
$id = $_POST['Id'];
$name = $_POST['Name'];
$dept = $_POST['Department'];
$update = "update info set Name='$name', Department='$dept' where Id='$id'";
$qry = mysqli_query($conn,$update);
if(!$qry) {
echo "Error Updating Details".mysqli_error($conn);
} 
else
{
echo "Data updated successfully";
}
mysqli_close($conn);
?>
$update=“更新信息集名称=”“$Name.”,集部门=”“$dept.”,其中Id=”“$Id.”


如果没有帮助,请提供表单代码。

请显示更多代码。是否检查了列名是否正确?是否有与bind
$id
匹配的行?你执行你的查询了吗?显示更多代码。您是如何在php中执行查询的?请使用原始帖子更新此内容。不要评论。这并不能真正解决OP的问题。这并不能真正解决OP的问题。请检查表中的数据类型,并显示您的mysql错误。嗯。。我不是OPC的问题是,它没有显示任何类型的错误。当我在各个字段中输入值并单击“更新”时,字段中的值将消失。当我在表格中登记时,没有变化。要不要解释一下否决票?我希望这不是因为选民的报复。因为我不是那个对另外两个答案投反对票的人。我试过这个。它没有锻炼。也没有任何其他建议。我现在该怎么办?@NagaNaveen-通过
mysqli\u查询($conn,$update)执行您的查询
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$conn) 
{
die("ERROR CONNECTING TO DATABASE!");
}
echo "Connected Successfully";
$id = $_POST['Id'];
$name = $_POST['Name'];
$dept = $_POST['Department'];
$update = "update info set Name='$name', Department='$dept' where Id='$id'";
$qry = mysqli_query($conn,$update);
if(!$qry) {
echo "Error Updating Details".mysqli_error($conn);
} 
else
{
echo "Data updated successfully";
}
mysqli_close($conn);
?>
$id = mysqli_real_escape_string($conn,$_POST['Id']);
$name = mysqli_real_escape_string($conn,$_POST['Name']);
$dept = mysqli_real_escape_string($conn,$_POST['Department']);