Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql中重命名时如何将昨天日期追加到表名_Php_Mysql_Mysqli - Fatal编程技术网

Php 在mysql中重命名时如何将昨天日期追加到表名

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

我在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 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我接受了,我改变了我的问题!