2016-08-11 4 views
0

現在、データベース内のファイルへのフルパスを格納しているPHPアプリケーションに変更を加えています(SQL経由)。しかし、私はパスの一部だけをdbに保存したいと思っています。パスはアプリケーション内で後で再構築され、必要に応じてパスを1か所で変更することができます。とにかくdb内のファイルパスの一部のみを分割して保存する

、何デシベルに書かれているが、このようなものです:私がやりたいことは"Z:/TheStore/apps/myapp/assets/upload/"

を削除して、唯一の「DOCID /のversionNumber \ document.docを挿入され、 Z:/TheStore/apps/myapp/assets/upload/docID/versionNumber\document.doc

しかし、 "をDBに追加します。

誰もがこれを達成するための良いアイデアを持っていますか?

パスの最初の部分は、この個別のアプリケーションでは常に同じであるため、簡単に、素早く汚い方法は、dbに格納する前にパスから正確な文字列"Z:/TheStore/apps/myapp/assets/upload/"を単に削除することだと思います。それは私が望む正確な部分を残すでしょう。または、これは愚かな考えです。そして、あなたはそれを私に教えることは自由です。

ありがとうございました。

答えて

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は完全なファイルパスです。

+0

ありがとうございました。 – CGM

関連する問題