0

目前我正在尝试使用 mysqli 创建一个新表。如果表“默认”存在,则将其重命名为当前日期和时间,如果不存在,则创建一个名为 default 的新表。我从以前的 php 页面获取日期和时间,该页面包含纯文本中的当前日期和时间,没有 / , - , :. 我怎样才能使用 mysqli 做到这一点?

$bk_time=$_POST['system_clock']."backup";
$conn = new mysqli($db_hostname, $db_username, $db_password);
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}
//check default exist
$sql = "SHOW TABLES FROM `descript`.`default`;";
if ($conn->query($sql) === TRUE) {

  $sql. = 'RENAME TABLE `default` TO `$bk_time`';
  echo 'exist';
}
else {
 echo 'not exist ';
 $sql. = 'CREATE TABLE `descript`.`default`';
}
mysqli_autocommit($conn, false);
mysqli_query($conn, $sql);
4

1 回答 1

0

我建议使用存储过程:

  1. 检查表是否存在
  2. 重命名表

第一个将类似于以下内容

IF EXISTS (
(SELECT * FROM information_schema.TABLES
    WHERE TABLE_SCHEMA = DATABASE()
    AND TABLE_NAME = _tableName))
    THEN SET _result = 0;
ELSE
    SET _result = 1;
END IF;
于 2012-11-01T14:01:42.677 回答