PHP代码更新MySQL表

时间:2010-09-12 21:47:52

标签: php sql mysql cron

我想用其他两个表的信息更新MySQL表。我将设置一个cron作业,但我不知道要使用什么PHP代码。

每次cron作业运行时,我都希望“个人资料”表中的“VideoNumber”列更新为他们上传到网站的视频数量。视频信息存储在名为“视频”的表格中,每个视频都有一个“OwnerID”来标识上传它的用户。这对应于“个人资料”表中的“ID”列。

我还希望使用同一用户上传的照片数量更新“个人资料”表格中的“PhotoNumber”列 - 照片数据存储在“照片”列中。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您必须首先从这两个表中选择数据,将某些数据分配给INSERT并将其传递。

答案 1 :(得分:0)

你做错了。创建/删除新视频/照片后立即更新这些列的值。您可以将所有内容都包含在事务中,以确保一切正常:

BEGIN TRANSACTION;
INSERT INTO videos VALUES (...);
UPDATE profiles SET videosCount = videosCount + 1 WHERE id = ?;
COMMIT;



BEGIN TRANSACTION;
DELETE FROM videos WHERE id = ?;
UPDATE profiles SET videosCount = videosCount - 1 WHERE id = ?;
COMMIT;

为照片做同样的事。

您甚至可以使用triggers使一切更清晰(即让数据库处理增加/减少计数列的值)

DELIMITER \\
CREATE TRIGGER abc AFTER INSERT ON videos
FOR EACH ROW BEGIN
   UPDATE profiles SET videosCount = videosCount + 1 WHERE id = NEW.profile_id;
END\\

DELIMITER ;