【发布时间】:2012-10-12 05:45:58
【问题描述】:
我现在正在为 cronjob 编写一些查询。 查询需要创建一个像现有表一样的表。 只是它必须将之后的日期(不带分隔符)添加到表名中。
我想出了这个解决方案: 明天的代码:
$date = date ('dmY');
$date = strtotime(date("dmY", strtotime($date)) . " +1 day");
查询:
$queryvc = "CREATE TABLE vervanger$date LIKE vervanger;
INSERT vervanger$date SELECT * FROM vervanger";
当我在 PHP 中回显它时,它会给出我想要的结果,但查询不会执行。而且我认为这是因为我没有从通常必须的查询中“删除”$date。有没有人可以解决这个问题?
该查询将使用 cronjob 每周运行一次,但在 cronjob 中,日期超过几个月的所有表也将被删除。这样数据库就不会变得太大。
【问题讨论】:
-
你为什么要那个? PS:通常mysql驱动不能一次执行多个查询。 “但是查询没有执行。” --- 问题是它不是一个查询,而是一个查询。
-
为什么不给每条记录添加一个时间戳并以这种方式清理它呢? (假设您想这样做以保持数据库清洁)
-
动态地拼凑表名是一个巨大的危险信号。你想做什么?为什么是动态表名?
-
查询语法中需要INSERT INTO ??
-
生成越来越多的表与“保持数据库清洁”完全相反。干净的数据库是一个具有合理、规范化、固定架构的数据库,您可以对其运行查询。