gpt4 book ai didi

php - 无法使用php从数据库mysql中删除整行

转载 作者:行者123 更新时间:2023-11-30 21:42:22 24 4
gpt4 key购买 nike

enter image description here

我试图从数据库中删除整行它有一个名为“students”的表,当我运行删除查询时它包括四列,它只删除了两个列数据 RegNo 和名称。可能是什么原因?

 $names = [
['reg'=> $_POST['s1_id'], 'reg_set'=> $_POST['s1_id_set'] ,'name'=> $_POST['s1_name']],
['reg'=> $_POST['s2_id'], 'reg_set'=> $_POST['s2_id_set'],'name'=> $_POST['s2_name']],
['reg'=> $_POST['s3_id'], 'reg_set'=> $_POST['s3_id_set'],'name'=> $_POST['s3_name']]
];




$query_delete="delete from students where RegNo=:reg And ProjectID='$id'";

$query_update="update students SET Name=:Name, RegNo=:reg_set WHERE
RegNo=:reg And ProjectID='$id'";

foreach ( $names as $name)
{
try
{

if(!isset($name['reg_set']) && !isset($name['name']) )
{

$stmt = $conn->prepare( $query_delete );
$stmt->bindParam(':Name', $name['name']);
$stmt->bindParam(':reg', $name['reg']);

$result = $stmt->execute();
$msg = "Record deleted";

}
else
{
$stmt = $conn->prepare( $query_update );
$stmt->bindParam(':Name', $name['name']);
$stmt->bindParam(':reg', $name['reg']);
$stmt->bindParam(':reg_set', $name['reg_set']);
$result = $stmt->execute();
$msg = "Record updated";
}
//header("location:adminhome.php");
}

catch(PDOException $ex)
{
$msg = $ex -> getMessage();
}
}

最佳答案

你的逻辑不通。您检查是否设置了 name 和 reg,然后,即使没有设置,您也尝试在数据库查询中使用它们。从结果来看,您似乎试图用空数据或空数据更新该行,这就是它们为空且未被删除的原因。

请显示$msg 是什么,然后修改您的逻辑。

关于php - 无法使用php从数据库mysql中删除整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50992848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com