Bu yüzden, bir sql sorgusunun nerede olduğunu söyleyerek alan adlarını ve değerlerini dışarı çıkarmak, değiştirmek ve daha sonra tekrar bir araya getirmek için PHP kullanmalıyım.PHP ile SQL'i yorumlama
Diyelim ki, bu dize verdiğimi varsayalım: field='value' AND field2<7
Alan ve alan2'yi alan adları olarak tanımalıyım, daha sonra field()
işlevini kullanarak besleyin ve bunları sorguya geri koyun. 'Değer' ve 7 ile aynı şeyler, ancak value()
işlevi aracılığıyla onları besleyin. Ayrıca, her bir değerin hangi alanla ilişkilendirildiğini bilmek de yardımcı olacaktır.
Bunu yapmak için birkaç bin satırlık bir kod almayacak bir yolu var mı? Ben açık kaynak ve oldukça iyidir php-sql-parser projeyi kullandım table.field BETWEEN 7 AND 10
veya field<7 AND (field2=3 OR field3=4)
Yeniden kullanılabilir bir şeye mi ihtiyacınız var ya da sadece dize değiştirmeleriyle değiştirebilir misiniz? – acme
Bağlam nedir? Alan sınırlanırsa, normal bir ifade kullanabilirsiniz. Herhangi bir rastgele sorguyla çalışmanız gerekirse, bir SQL ayrıştırıcısı kullanmanız gerekir. – Matthew
Çok çeşitli olası girişler için çalışmalı, eğer işe yarayacak dize değişimleri ile yapabiliyorsan, ama dize değiştirilmesinden daha karmaşık olduğunu düşünüyorum. –