Nasıl sahte SQL veri benim sunucu tarafı kod yorumlama olmadan ifadeleri koruyarak olurken?

4 Cevap php

Çünkü biz gerçek verilere erişim yok şu anda belirli alanlar için kodlanmış değerleri kullanmak zorunda.

Biz erişim olsun, ben iş uncommenting bir sürü gitmek istemiyorum.

Bunun için ad olarak kullanılması '25 'dışında, bu deyimi o şekilde tutmak mümkün mü ratecode?

   IF(special.ratecode IS NULL, br.ratecode, special.ratecode) AS ratecode,

Ben yaklaşık 8 ya da var buna benzer ifadeler ve ben yeniden eklemek her dışarı yorum için ise (hatta vim ile) sadece çok tembelim IF deyimi satır satır eğer. Bunu yapmak zorunda olurdu:

$sql = 'SELECT u.*,';

// IF ( special.ratecode IS NULL, br.ratecode, special.ratecode) AS ratecode
$sql.= '25 AS ratecode';

4 Cevap

Bunu test verileri ile sahte bir veritabanı oluşturmak değil mi? Ben genellikle veritabanı ile ilgili test yapmak nasıl. Eğer "gerçek" birim testleri ya da bir şey yazmaya çalışıyorsanız, sizin DB katman için sahte nesneler yapma düşünebilirsiniz, ama olabilir genellikle overkill IMHO. SQL motorları takas mümkün iseniz, hatta yerel test için SQLite gibi bir şey takas olabilir.

Ben veritabanı görünümleri içine tüm bu şeyler koymak ve daha sonra "gerçek" veri ifşa gelince mantığı çimdik ediyorum: bu şekilde sizin uygulama kodunun herhangi tamircilik zorunda değilsiniz

örneğin Başlangıçta:

create view myStuff as
select 25 as my_val
.....
from my_table

ve daha sonra, daha sonra değiştirilmesi:

create view myStuff as
select my_val
.....
from my_table

Eğer bu SQL tabloların bir sürü kullanarak ediyorsanız, sadece uygulamanın dizinde küçük bir dosya koyabilirsiniz; script başlaması üzerine, bu dosyanın varlığını kontrol ediyorum, ve o dosyayı dedi bulursa, o TRUE için $isproduction gibi bir değişken olacaktı; aksi halde, FALSE. Sonra, her bir SQL ifadesi için gibi bir şey yapacağını (IDE PCRE yetenekleri ile bu gibi şeyler için gerçekten çok iyi)

if ($isproduction === FALSE) {
    //big long SQL statement here
}
else {
    //create false data here
}