Benim veri masaj ve MySQL ile almak / saklamak için PHP veya Perl kullanmalı mıyım?

7 Cevap php

Ben MySQL Server veri göndermek için gereken bir masaüstü uygulaması var. App şirket içi kullanım için olacak, ancak MySQL bir hosting şirketi bir sunucu üzerinde.

Veri silme ve güncelleme, bir sokulmadan önce biraz ve standart basit insert masaj gerekir.

Hangi PHP veya Perl kullanmak gerekir?

Ben veritabanı odaklı web sayfaları çeşitli için artık PHP kullanmak, ama benim şimdiki görev herhangi bir web sunumuna ihtiyacı yoktur. (PHP de bir web-render olmadan bu yapabileceğini biliyorum)

Bir veri madenciliği görev ve Oracle için (belki 4 yıl önce) geçmişte Perl kullandık.

What I don't know: - Can Perl work with MySQL easily? - The Perl scripts would go in cgi-bin on the webserver, correct? - Security issues with either? - Best practice in Perl for connecting to MySQL to insert data? - Where can I store the Insert, Update, Delete MySQL user name and password so it is not stolen, etc?

Ne tüm seçerdiniz?

Düşünceler takdir edilmektedir

-Jason

7 Cevap

Perl DBI modülü çok güçlü ve kolay ilişkili parametrelerin kullanımı ile SQL enjeksiyon saldırıları önlemek için yapar. SQL deyimleri tutucuların kullanımı hakkında ayrıntılar için 'perldoc DBI' bakın. Veritabanı için kullanıcı adı / parola koruyan okuma-korumalı dosyasında kimlik bilgilerini yerleştirerek normal bir Unix dosya koruması ile yapılabilir.

DBIx::Class ve Class::DBI modülü Perl nesneleri içine tüm veritabanı ve ilişkileri eşleştirmek için bir yol sağlar. Bu SQL tek bir satır yazmak gerek kalmadan yol boyunca güvenli kodu üreten, hızla veritabanını yürümek çok kolay hale getirir. Bu comparisons of Class::DBI and DBIx::Class hangi bir seçim yardımcı olabilir; Perl ile her zamanki gibi, there is more than one way to do it. Bütün bir çerçeve arıyorsanız, Rose kütüphane Rose::DB::Object erişim düzene sağlar.

Siz komut satırından veya cgi-bin dizinleri ya Perl komut dosyalarını çalıştırabilirsiniz.

[Diğer veritabanı sarıcı sınıflar önerileri için draegtun için teşekkürler]

Peki hem MySQL ile sadece iyi çalışabilir. Bu gerçekten hissedebilmeniz sadece bir tercih ve seviye bulunuyor. Eğer PHP ile biraz söylüyorlar yana, o sizin için daha verimli olabilir.

Perl DBI PHP'nin PDO veya nesne yönelimli mysqli'nin çok benzer, ama ya hiç kullanmadıysanız şimdi eğer birini öğrenmek için iyi bir zaman olabilir ...

PHP komut satırından çalışıyor. Eğer şirket (senden sonra bunu korumak için kimin düşünmek) aşina olduğunu ne daha da önemlisi aşina, ve ne ise.

Perl DBI çok daha olgun ve çevresinde daha altyapıya sahiptir çünkü. Eğer mysql sadık emin iseniz, PHP bağlayıcı "sıradan" oldukça iyi test edilmiş ve PHP veritabanı programcıları çoğunluğu tarafından kullanılmaktadır.

PHP web uygulamaları yazma aşina iseniz, zaten onunla konsol uygulamaları yazmak için biliyorum.

Tek fark, HTML yerine düz metin çıktısı ve bazı yeni superglobals $ argc ve komut satırı argümanlarını ihtiva eden $ argv olmasıdır.

Eğer PDO veya MySQLi sınıfını kullanmak Eğer paramaterized veya hazırlanmış sorguları kullanabilirsiniz.

App için karar vermek zorunda olacak ana şey daha rahat manipüle verileri hangi dil ile hissediyorum yani DB ile çalışan, muhtemelen, iki dilde kadar kolay olurdu?

Can Perl work with MySQL easily?

Evet, LAMP, Linux, Apache, MySQL ve Perl olması için kullanılır. -P: amatörler yerine PHP kullanabilirsiniz. Daha ciddi PHP son yıllarda çok daha iyi var, ama Perl teslimat süreleri ödün vermeden yapabilirsiniz eğer öyleyse bunu kullanmak daha olgun.

The Perl scripts would go in cgi-bin on the webserver, correct?

Sürece web sunucusu komut dosyası erişmek ve yürütebileceği gibi, bu gibi herhangi bir dizine gidebilirsiniz. Cgi-bin dizinin varlığı sadece dinamik olanlardan statik sayfaları ayırmak için bir çabadır. Sadece web sunucusu bir dizin PHP çalıştırmak eğer, çok oradan Perl çalıştırmak mümkün olmalıdır koydu.

Security issues with either?

SQL Injection saldırılarına karşı savunmasız SQL yazmaya çalışın; NOT eski PHP mysql_ fonksiyonları yerine PDO veya mysqli_ işlevlerini kullanmaz yok. PHP ve PERL her ikisi ile bağlı değişkenler kullanmak ve tüm giriş kontrol edin.

Best practice in Perl for connecting to MySQL to insert data?

Perl DBI kütüphane kullanımı, çok olgun ve bağlı değişkenler doğru şekilde kullanıldığında, SQL Injection saldırıları gerçekleştirmek için yeteneğini kısıtlar.

Where can I store the Insert, Update, Delete MySQL user name and password so it is not stolen, etc?

Bunun için mutlak bir garanti veremem koydu. Eğer çalıştırmak için program için gereken minimum haklarına sahip bir MySQL kullanıcı oluşturun. yani kullanıcı tabloları kaldırmak için haklara sahip olmamalıdır, Sen kritik dosyanın gündelik indirilmesini engellemek için web sunucusu tarafından erişilebilir dizin dışındaki veritabanı ile ilgili kod koyabilirsiniz vb veritabanları bırakın.