"John Hughes" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> I need to rebuild a PHP-mySQL site that has an extensive table
> structure. Is there a way to DROP all tables that start with a
> certain prefix?

First, use

SHOW TABLES FROM db LIKE prefix%

to get the table names, then iterate through with

DROP TABLE tablename


The result will look something like

<?php

$con = mysql_pconnect("localhost", "user", "pwd")
    or die("Error connecting: ".mysql_error());
$res = mysql_select_db("dbname", $con)
    or die("Error selecting database: ".mysql_error());

$query = "SHOW TABLES FROM $dbname LIKE '$prefix%'";
$res = mysql_query($query, $con);

while ($row = mysql_fetch_array($res)) {
    $query = "DROP TABLE {$res[0]}"
    $ex = mysql_query($query) or echo("Error dropping table
{$res[0]}:".mysql_error());
}

?>


If you are going to use this repeatedly, I would
make this a two-stage endeavor: the first step
queries the database and returns a check-box
form with all the returned table-names; when
submitted, the checked tables are dropped.

Hope this helps



-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to