-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 ループに含まれているためです。

現時点で持っているコードは、1 つのテーブルの内容を削除してからテーブルをスキップし、1 つのテーブルの内容をもう一度削除して、もう一度スキップします...

また、php の配列の最初の要素は要素 0 であるため、$i は 0 から開始する必要があります。

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