要使用PHP PDO連接數據庫,然後清空數據庫並導入.sql文件,您可以按照以下步驟操作:
- 使用PDO連接到數據庫:
$dbHost = "您的主機名";
$dbName = "您的數據庫名";
$dbUser = "您的用戶名";
$dbPass = "您的密碼";
$dbCharset = "utf8mb4";
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=$dbCharset";
$pdo = new PDO($dsn, $dbUser, $dbPass);
- 清空數據庫表:
$tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
foreach ($tables as $table) {
$pdo->exec("TRUNCATE TABLE $table");
}
- 導入.sql文件:
$sqlFile = "路徑/到/您的/sql/文件.sql";
$sql = file_get_contents($sqlFile);
$pdo->exec($sql);
這些步驟將連接到數據庫,清空所有表,然後導入指定的.sql文件。請注意,這將永久刪除所有數據,因此請確保在執行此操作之前備份您的數據庫。
函數封裝
好的,以下是一個包含連接到數據庫,清空所有表並導入.sql文件的函數:
function clearAndImportSQL($dbHost, $dbName, $dbUser, $dbPass, $sqlFile) {
$dbCharset = "utf8mb4";
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=$dbCharset";
try {
$pdo = new PDO($dsn, $dbUser, $dbPass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 清空數據庫表
$tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
foreach ($tables as $table) {
$pdo->exec("TRUNCATE TABLE $table");
}
// 導入.sql文件
$sql = file_get_contents($sqlFile);
$pdo->exec($sql);
echo "SQL file imported successfully.";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
$pdo = null;
}
該函數包含5個參數:$dbHost(數據庫主機名),$dbName(數據庫名稱),$dbUser(數據庫用戶名),$dbPass(數據庫密碼)和$sqlFile(包含要導入的.sql文件的路徑)。
請注意,此函數假定您已經備份了數據庫,因爲它將永久刪除所有表數據。請謹慎使用此函數。