【发布时间】:2011-06-08 20:27:48
【问题描述】:
我有一个 Linux 机器,它正在捕获数据、创建文件并将有关文件的数据存储在 MySQL 表中。我需要能够有选择地开始修剪这些数据。
我打算使用 php-cli 脚本并通过 cron 每晚运行它。
基本前提是选择符合删除条件的行,从匹配的行中删除文件,然后删除行。路径/文件名存储在行中。
我发现以下查询可以安全地选择,然后删除行,但我还需要从文件系统中删除结果中的文件:
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION;
SELECT foo FROM bar WHERE wee = 'yahoo!';
DELETE FROM bar WHERE wee = 'yahoo!';
COMMIT;
我知道如何使用 php 的 unlink() 函数删除文件。我只是不知道如何保留结果集,迭代删除文件,然后从表中删除结果集行......没有写入临时文本文件或其他东西的大丑陋黑客。
任何帮助将不胜感激。谢谢!
编辑:PHP 5.3.6,MySQL 5.0.77
【问题讨论】:
-
嗯。我真的没有看到问题。事务确保它将选择然后删除该行,并且
unlink();函数确实有效。你有什么问题?