-2

我正在尝试将数据库中的所有表列出到一个数组中,然后继续删除表的内容。我的代码有什么问题?

    <?php

mysql_connect('localhost', 'root','');

mysql_select_db(database_name);

$res = mysql_query("SHOW TABLES");

$tables = array();

while($row = mysql_fetch_array($res, MYSQL_NUM)) {
    $tables[] = "$row[0]";
}

$length = count($tables);

for ($i = 1; $i < $length; $i++) {
  $res = "DELETE FROM $tables[$i]";
  mysql_query($res);
  echo $res;
    $i++;
}
?>
4

1 回答 1

1

在你的 for 循环结束时,你不需要做 $i++; 不再,因为此操作已包含在 for 循环中。

您目前拥有的代码将删除一个表的内容然后跳过一个表,再次删除一个表的内容并再次跳过一个......

$i 也应该以 0 开头,因为 php 中数组中的第一个元素是元素 0。

for ($i = 0; $i < $length; $i++) {
    $res = "DELETE FROM $tables[$i]";
    mysql_query($res);
    echo $res;
}
于 2013-03-17T20:48:14.900 回答