更新MySQL表的PHP代码

更新MySQL表的PHP代码,php,sql,mysql,cron,Php,Sql,Mysql,Cron,我想用另外两个表中的信息更新一个MySQL表。我将设置一个cron作业,但我不知道要使用什么PHP代码 每次cron作业运行时,我都希望“Profiles”表中的“VideoNumber”列更新为他们上传到站点的视频量。视频信息存储在一个名为“Videos”的表中,每个视频都有一个“OwnerID”来标识上传它的用户。这对应于“配置文件”表中的“ID”列 我还希望“Profiles”表中的“PhotoNumber”列更新为同一用户上传的照片数量-照片数据存储在“photos”列中 有人能帮忙吗?

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

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

我还希望“Profiles”表中的“PhotoNumber”列更新为同一用户上传的照片数量-照片数据存储在“photos”列中


有人能帮忙吗?

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

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

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;
对照片也这样做

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

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 ;

插入触发器工作。当视频被删除时,我会使用什么触发器?我想出来了,你用-1替换+1,用旧的.profile\u id.ThanksP.S替换NEW.profile\u id,如果有人看到这个问题,我真的建议像Crozin建议的那样更改PHP代码。触发器是可以的,但在我看来,它们更容易破解。另外,令我难以置信的是,一些主机拒绝允许您通过SQL命令在phpMyAdmin上创建触发器。当然,除非您购买VPS或专用服务器包。。。