【发布时间】:2014-02-20 09:03:05
【问题描述】:
我的服务器上有一些文件要放入数据库。我将在数据库中添加更多信息,例如有关文件的 cmets(在我解决此问题后,文件的 SQL 查询将更容易与数据库进行比较)并节省一些带宽。问题是我想查看数据库中是否已经存在文件夹/文件。如果没有,请将它们添加到数据库中。
这是我的代码目前的样子(sql() 是我创建的一个函数)(下面的代码仅呼应数据库中现有名称的名称以用于开发目的):
$dir = new RecursiveDirectoryIterator($admin['data_folder_main'], FilesystemIterator::SKIP_DOTS);
$it = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST);
$it->setMaxDepth(1);
foreach($it AS $fileinfo) {
# DATABASE (fetch)
$folder = sql("SELECT *
FROM items_folders
WHERE name_folder = :folder
", Array('folder' => $it->getSubPath()), 'fetch');
echo $folder['name_folder'].'<br>';
}
这是数据库的样子:
CREATE TABLE IF NOT EXISTS `items_folders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_folder` int(11) NOT NULL DEFAULT '0',
`name_folder` text NOT NULL,
`name_folder_sub` text NOT NULL,
PRIMARY KEY (`id`)
)
问题是上面的代码从数据库中打印出现有的名称,然后回显该名称的次数与服务器上文件夹中的文件夹/文件相同。这就是我想要的:该文件夹是否存在于数据库中?是或否。
是吗?好的!忽略它(不要将它添加到数据库中)。继续下一个文件夹/文件(如果有的话)。
没有?将其添加到数据库中。继续下一个文件夹/文件(如果有的话)。
我怎样才能做到这一点?
【问题讨论】:
-
在条件语句中设置您的查询。
If查询成功,做点什么;else,做点别的事。