如何使用PHP更新表中的值
如何使用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
$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']);