在db

时间:2016-08-11 18:09:41

标签: php sql split path insert

我正在对当前存储数据库中文件的完整路径(通过SQL)的php应用程序进行更改。但是,我只希望将部分路径存储在db中。该路径稍后在应用程序中重建,如果需要,可以在一个地方更改路径。

无论如何,写入db的内容是这样的: Z:/TheStore/apps/myapp/assets/upload/docID/versionNumber\document.doc

但是,我想要做的是删除"Z:/TheStore/apps/myapp/assets/upload/"

只插入" docID / versionNumber \ document.doc"进入DB。

任何人都知道如何做到这一点?

路径的第一部分对于这个单独的应用程序将始终是相同的,所以我认为一种简单,快速和肮脏的方式是以某种方式从路径中删除确切的字符串"Z:/TheStore/apps/myapp/assets/upload/",然后将其存储到db,它会留下我想要的确切部分。或者,也许这是一个愚蠢的想法。你可以自由地告诉我。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以很容易地在MySQL中使用REPLACE方法来获取现有数据:

UPDATE 
  tablename 
SET 
  columnName = REPLACE(columnName, 'Z:/TheStore/apps/myapp/assets/upload/', '')

其中tablename是表的名称,columnName是存储此文件路径的列。

您可以在网址上使用str_replace在php中执行等效操作(或跟踪您的docID和versionNumber以使字符串相对路径更好)。

$path = str_replace('Z:/TheStore/apps/myapp/assets/upload/','', $path);

其中$path是完整的文件路径。