MySQL veritabanı küresel bir dize nasıl değiştirilir

3 Cevap php

Ben yükseltmek istiyorum eski bir drupal sitesi var, ama ben dosyaların / den (vb jpgs, gif, gibi) tüm site veri dosyaları taşımak için ihtiyacınız / sites / default / files.

Ben, adı * kısmında dize kadar karışıklık olmadan (* / dosyaların / herhangi bir örneğini bulmak ve / sites / default / files / * bunu değiştirmek için bir PHP komut dosyası ya da sadece bir MySQL komutunu kullanmak istiyorum tabii ki!).

Bunu yapmak oldukça kolay mı? Bir fonksiyonu üzerinde herhangi bir işaretçiler ben kullanabilir miyim?

3 Cevap

MySQL bazı yerleşik dize değiştirme fonksiyonları var. Nasıl böyle bir şey?

UPDATE table SET field = REPLACE(field,'/files/','/sites/default/files/');

Siz de gerekirse other functions daha karmaşık değiştirmeleri (yani düzenli ifadeler) için orada kullanabilirsiniz oluyor.

Ben sadece Drupal yapılandırmasında 'files' yolunu değişen bir olgu olduğunu eminim.

Sadece dosyaları tablo değişen ediyorsanız zombat dediğim gibi, sen, SQL ile bir UPDATE yapabilirsiniz. Eğer yolları (IE - tam HTML düğüm organları ve benzeri) diğer örneklerini önemli bir dizi varsa, en iyi bahis (mysqldump veya PHPMyAdmin ihracat özelliği ile bunu yapabilirsiniz) bir metin dosyasına DB ihracat olacağını ve sonra sadece orada dizeleri güncelleyin - uygun bir metin editörü, sed gibi bir komut satırı aracı veya stajyer bir grup ile ya.