Sorgu sonuçları ile XML SQL ifadeleri değiştirin

2 Cevap php

Ben XML içine sql sorgu sonuçları dönüştürmek olacak yerde işlevlere sahiptir. Ancak, şimdi, bu ifadeleri yürütmek, (SQL ifadeleri yuvalanmış) bir XML belgesinde okumak PHP kullanarak, ve esasen sonuçları ile sql deyimi değiştirmek mümkün olmak istiyorum.

(Sadece bir not, PostgreSQL kullanarak)

Örneğin:

 <customers>
    <customer>
       <info>* from customer for where customer = 1</info>
          <details>
             <po>
                <info>* from po join where customer = "master" customer</info>
             </po>
             <order_history>
                <info>* from order_history where customer = "master" customer</info>
             </order_history>
          </details>
    </customer>
    <customer>
       <info>* from customer for where customer = 2</info>
          <details>
             <po>
                <info>* from po join where customer = "master" customer</info>
             </po>
             <order_history>
                <info>* from order_history where customer = "master" customer</info>
             </order_history>
          </details>
    </customer>
    ...
 </customers>

Ben XML belge okuma ve SQL ifadeleri ile DB sorgulama emin değilim, ancak ben XML yapısında sonuçlarını doldurma hakkında gitmek nasıl emin değildi değilim.

Metin yerine bir tür? Ya da aynı anda sonuçlar ile yinelenen XML belge yeniden? Herhangi bir öneriniz? Teşekkürler ...

Ayrıca, bu sorguları alt sorguları (veya daha yüksek düzey sorgular) alt düzey sorguları bağlı olduğu anlamda ilişkilidir ...

2 Cevap

Bu sizin için ne arıyorsanız olmayabilir ama ben bunu önlemek eğer XML SQL dahil değil öneririz. Uygulama büyür Eğer (memcache?) Veri depolamak için başka bir şey kullanmak isteyen sona erebilir ve sonra SQL-> (başka bir şey) çevirmen yazmak gerekecek.

Yani, bir şey daha fazla gibi:

<customers>
  <customer id="1">
    <fetch />
    <details>
      <po>
        <fetch />
      </po>
...

Sonra PHP DOM yöntemleri ile XML ayrıştırma yapabilir. Eğer "mevcut müşteri id" ayarlanmış bir müşteri etiketi üzerinde çalıştırdığınızda, alt getir etiketi kaldırmak istersen sorgu gerçekleştirmek, sonuçlarını içeren etiketler ekleyin ve ardından bir sonraki etiketlere ağacın aşağı hareket ettirin.

Eğer po etiketi içine alıp etiketini vurduğunuzda size (etiketler ekleyin, sorgu kaldırmak) Yukarıdaki işlemi tekrarlayarak, mevcut müşterinin PO verilerinin getirebilir.

Çıkış kolay çıkışını ve girişini ilişkilendirmek yapma, girdi olarak aynı formatta müşteri id içerecektir.

Soru şudur: başka bir XML yapısını yeniden kabul edilebilir performans akıllıca olurdu? Eğer öyleyse, benim cevap: Denemek kadar bilemezsiniz.

Sen zaten 1 sorgu için XML oluşturmak için bir işlevi var, dedi. Şimdi bunun üstüne bir fonksiyon yazabiliriz: yerine ((? Kopyalayın) SQL-Sorgu-XML okunan XML alın ve takın, tür SQL_TO_QUERY verilen XML "embed" () fonksiyonu sorgulayabilir?).

PHP-Fonksiyonlar XML, SimpleXML işlemek için kullanıyor: Eğer daha fazla bilgi gerekiyorsa, daha bilgi verebilir misiniz? Veritabanı-XML-Dosya ne kadar büyük? Neden tam olarak tüm müşteriler için genel bir açıklama yapamaz?