【发布时间】:2012-08-13 20:29:20
【问题描述】:
我正在尝试用 PHP 编写一个脚本来重置我在数据库中的 ID。但我必须重命名表中具有相同 ID 的目录。
所以我尝试使用重命名功能但失败了。
我总是有“没有这样的文件或目录”。我尝试使用绝对或相对路径,更改 chmod,在之前使用睡眠,是的,我的文件夹存在。
所以我会知道为什么这不起作用:
rename('/uploads/photos/'.$old_id.'/', '/uploads/photos/'.$new_id.'/');
而且我的文件夹里面有一些文件。
【问题讨论】:
-
reset my ids in a database- 通常不是一个好主意。主键应该从它们引用的数据中抽象出来——它们应该与数据本身相关。请解释为什么你觉得你需要这样做。但要回答实际问题,请尝试不带前导/尾随斜杠的rename('uploads/photos/'.$old_id, 'uploads/photos/'.$new_id);,除非您确实在文件系统根目录中有一个名为/uploads的目录(我对此表示怀疑)... -
你试过不带斜线吗?
-
真的,我认为操作系统正在根文件夹中搜索“上传”。尝试使用完整路径,例如:/var/www/uploads/photos/....
-
我需要重置 id,因为我有 118k 的结果,现在只有 200,它有干净的 id 和 url。我会尝试不使用前导斜杠,我尝试不使用尾部斜杠,结果是一样的。
-
DaveRandom 已经写过,id 值永远不应该被修改。 id 是对记录的永久引用。