2016-08-11 3 views
0

Я вношу изменения в приложение php, которое в настоящее время хранит полный путь к файлу в db (через SQL). Но я хочу, чтобы часть пути хранилась в db. Путь перестраивается позже в приложении, позволяя изменить путь только в одном месте, если это когда-либо понадобится.Разделить и сохранить только часть пути к файлу в db

Во всяком случае, то, что написано в БД что-то вроде этого: 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/" с пути, прежде чем хранить ее в db, который оставил бы точную часть, которую я хочу. Или, может быть, это глупая идея. И ты можешь мне это рассказать.

Спасибо.

ответ

1

Вы можете использовать REPLACE метод в MySQL довольно легко для существующих данных:.

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

где tablename это имя таблицы и columnName является столбец этот путь к файлу хранится в

Вы можете сделать эквивалент в php (или отслеживать ваш docID и versionNumber, чтобы сделать относительный путь строки лучше) с str_replace на url.

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

где $path - это полный путь к файлу.

+0

Спасибо, это помогло! – CGM

Смежные вопросы