gpt4 book ai didi

php - mysql中是否有一个查询会截断特定数据库中表的所有数据?

转载 作者:行者123 更新时间:2023-11-30 22:11:16 28 4
gpt4 key购买 nike

$data = mysql_query( "截断 'DATABASE_NAME' ");

我们能否设法使用 mysql 查询截断数据库的所有表或仅截断单个表,如 truncate 'tablename'?

最佳答案

您可以通过遍历数据库中的所有表来解决该问题。要获取表名,请使用 MySQL 的 INFORMATION_SCHEMA。解决方案可能如下所示:

//database connection information - adjust as needed
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
//connect to the DB using PDO
$dbh = new PDO($dsn, $user, $password);
//query all tables in a database
$stmt = $dbh->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='your_database_name_here';");
//truncate tables one by one
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$dbh->query('TRUNCATE TABLE '.$row['TABLE_NAME']);
}
unset($stmt, $dbh);

为了简洁起见,省略了任何错误处理(例如,无法建立与数据库的连接时捕获异常)。

此外,您应该避免使用旧的 MySQL API,因为它已在 PHP 5.5 中弃用,并已在 PHP 7 中完全删除。您应该使用 mysqli 或 PDO。看看 "Choosing an API" php.net 上的页面以获取更多信息。

关于php - mysql中是否有一个查询会截断特定数据库中表的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com