1

我正在尝试执行以下 mysqli 语句:

显示表状态,如“问题”

我想遍历结果并找到并返回 Update_time 的值。

我在网上找到了一些示例,但无法让它们在我的 PHP 脚本中工作。

我的其他 PHP 函数遵循以下格式,我希望这个函数与之匹配。

public function getQuestionsSections() {
 $stmt = mysqli_prepare($this->connection,
      "SELECT DISTINCT
          QUESTIONS.SECTION
       FROM QUESTIONS");     

  $this->throwExceptionOnError();

  mysqli_stmt_execute($stmt);
  $this->throwExceptionOnError();

  $rows = array();
  mysqli_stmt_bind_result($stmt, $row->SECTION);

  while (mysqli_stmt_fetch($stmt)) {
      $rows[] = $row;
      $row = new stdClass();
      mysqli_stmt_bind_result($stmt,  $row->SECTION);
  }

  mysqli_stmt_free_result($stmt);
  mysqli_close($this->connection);

  return $rows;
}

我真的很感谢在编写 php 函数方面的一些帮助,因为我不是 php 程序员。

这里给出了问题的答案,

无法显示 mySQL 表的最后更新时间

不幸的是,它对我不起作用。如果我们使用上面的 mysqli_prepare 将是理想的

4

1 回答 1

0
  SHOW TABLE STATUS LIKE  'QUESTIONS'

是等价的

 SELECT UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'QUESTIONS'

. 您需要访问“information_schema”数据库以获取 UPDATE_TIME (not Update_time) 。

public function getStatus() {

 $con = mysqli_connect("localhost","root","password","information_schema");
 $stmt = mysqli_prepare($con ,
      "SELECT UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'QUESTIONS'");     

  mysqli_stmt_execute($stmt);

  $rows = array();
  mysqli_stmt_bind_result($stmt, $row->UPDATE_TIME );

  while (mysqli_stmt_fetch($stmt)) {
      $rows[] = $row;
      $row = new stdClass();
      mysqli_stmt_bind_result($stmt,  $row->UPDATE_TIME );
  }

  mysqli_stmt_free_result($stmt);
  mysqli_close($con);

  return $rows;
 }

我希望它会起作用。

Reference : https://dba.stackexchange.com/questions/3221/how-to-select-from-show-table-status-results

于 2012-07-20T12:33:01.207 回答