在我构建的 worker 轮类监控/会计系统中,有一个删除员工的选项。这工作正常,但我想为被删除的员工存档类次。
我调查了一下,似乎最好的方法是在删除之前将我的轮类表更新到另一个表中。我通过另一个Stack Overflow post查找了如何做到这一点但是我收到错误:对非对象上的成员函数调用发生 fatal error
。
根据我所能找到的,这个错误是当你尝试传递一个空值时引起的,这让我很困惑,因为我试图传递的值是一个 GET 并且在我测试它时工作正常。
$sql = "
UPDATE table_archive
SET table_shift.shift_date = table_archive.shift_date,
table_shift.start_time = table_archive.start_time,
table_shift.end_time = table_archive.end_time,
table_shift.total_hours = table_archive.total_hours,
table_shift.rate_of_pay = table_archive.rate_of_pay,
table_shift.uniqueid = table_archive.uniqueid,
table_shift.addedBy = table_archive.addedBy,
table_shift.paidRate = table_archive.paidRate,
table_shift.totalPaid = table_archive.totalPaid
FROM table_shift, table_archive
WHERE table_shift.uniqueid = ?
";
$stmt = $connection->prepare($sql);
$deleteid = htmlentities($_GET['id']);
$stmt->bind_param('s', $deleteid);
$stmt->execute();
我很困惑为什么这不会通过,GET 不能是空值,因为我现在使用的测试删除传递了相同的变量并且工作正常。 mysqli_query($connection,"从 table_staff 删除,其中 uniqueid='$deleteid'")
可能是我错误地使用了 SQL 代码,或者我忘记了一些愚蠢的事情,但这让我感到困惑。如果无法修复此代码,欢迎提出有关如何实现预期功能的任何其他建议。
最佳答案
您无法更新自。你的语法错误。
相反,使用这个:
INSERT INTO table_archive<br/>
SELECT * FROM table_shift WHERE table_shift.uniqueid = ?
关于PHP/MySQL - 使用另一个表中的数据更新 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21526295/