【问题标题】:Split and store only part of a file path in the db拆分并仅将文件路径的一部分存储在数据库中
【发布时间】:2016-08-11 18:09:40
【问题描述】:

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

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

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

并且只将“docID/versionNumber\document.doc”插入数据库。

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

路径的第一部分对于这个单独的应用程序来说总是相同的,所以我认为一种简单、快速和肮脏的方法是在将其存储到数据库之前以某种方式从路径中删除确切的字符串 "Z:/TheStore/apps/myapp/assets/upload/" ,这将留下我想要的确切部分。或者,也许这是一个愚蠢的想法。你可以随意告诉我。

谢谢。

【问题讨论】:

    标签: php sql split path insert


    【解决方案1】:

    你可以很容易地在 MySQL 中使用REPLACE 方法来处理现有数据:

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

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

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

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

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

    【讨论】:

    • 谢谢,有帮助!
    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多