PHP/MySQL - 使用另一个表中的数据更新 SQL 表

标签 php mysql sql

在我构建的 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/

相关文章:

php - 锁定在 MyISAM 表 (MySQL) 和 PHP

mysql - 仅在自增 id 不等于 6 时才插入(例如)?

mysql - SELECT COUNT 非零单元格 mysql

mysql - 安全、效率——在哪里托管用户数据库

mysql - 加入相册并查看其图像数和封面?

mysql - 按列对结果进行分组

多个where子句上的SQL Oracle rownum?

php - HTTP GET 中大数据破坏 json 对象

php - 客户端断开连接后 CSimpleSocket 失败

php - 如何从 Doctrine2 实体填充 zend_form?