Php 在mysql中重命名时如何将昨天日期追加到表名
我在php中使用MySQLi面向对象方法实现MySQLi连接。在这种情况下,我需要一个查询来将表重命名为昨天的日期。我怎么做 这是我的密码:Php 在mysql中重命名时如何将昨天日期追加到表名,php,mysql,mysqli,Php,Mysql,Mysqli,我在php中使用MySQLi面向对象方法实现MySQLi连接。在这种情况下,我需要一个查询来将表重命名为昨天的日期。我怎么做 这是我的密码: $stmt = $this->conn->prepare("RENAME TABLE current_table_tmp TO SUBDATE(CURDATE(),1)"); $stmt->execute(); 我的错误: Fatal error: Call to a member function execute() on boo
$stmt = $this->conn->prepare("RENAME TABLE current_table_tmp TO SUBDATE(CURDATE(),1)");
$stmt->execute();
我的错误:
Fatal error: Call to a member function execute() on boolean
我通过使用multi_查询执行动态SQL语句得到了答案 以下是我的php代码:
$location = 'renametable.sql';
$commands = file_get_contents($location);
$this->conn->multi_query($commands);
动态SQL语句,将昨天的日期附加为renametable.SQL文件
SET @tablename = 'current_table_tmp';
SELECT @query := CONCAT('RENAME TABLE `', @tablename, '` TO `',
CURDATE(), @tablename, '`');
PREPARE STMT FROM @query;
EXECUTE STMT;
您的错误与主题无关:如何重命名表。你想知道什么?SQL应该
将表tbl\u名称重命名为新的tbl\u名称
,最好使用日期('Y-m-d',strotime('-1day'))
和日期('Y-m-d')
将Y-m-d
更改为给定的格式。您永远不会首先基于日期重命名表在mysql中永远不会将昨天的日期附加到表名。你只要保留你的表名就行了,如果你没有得到它,那就马上去StackOverflow!如果您找到了自己问题的答案,请不要编辑您的问题,而是发布答案。问题部分,顾名思义,只为问题保留,而只有回答部分。然后,3天后,回来,把你的答案标记为已接受,这样大家都知道,就没有担心了。@derM&@spencer7593我接受了,我改变了我的问题!