MicroApache SQLite 3 Koşu

3 Cevap php

Ben (http://microapache.amadis.sytes.net), Windows XP üzerinde MicroApache çalıştırıyorum ve SQLite 3 veritabanları kullanmak istiyorum.

PHP sürümü 5.2.9-2 olduğunu.

My MicroApache version has SQLite 2 support through 2 lines in the php.ini:
extension=php_pdo.dll
extension=php_sqlite.dll

I test whether the extension works in 3 ways:
1. phpinfo()
2. extension_loaded() and get_loaded_extensions()
3. using sample code that var_dump()s the constant SQLITE3_NUM (should be the integer 2) and tries to create a database (error: class 'SQLite3' does not exist)

Things I have tried (if I can remember them all):
1. copied php_sqlite3.dll from a full installation of PHP and added "extension=php_sqlite3.dll" to php.ini
-> error "Procedure entry point gc_remove_zval_from_buffer was not found in php5ts.dll"
2. compressed the DLL with UPX (like the other DLLs of MicroApache seem to be)
-> does not display an error on start, nor in the log file, but does not work
3. tried various things with php.ini
- created a section "[sqlite3]"
- prefixed "sqlite3." to "extension_dir=." and "extension=php_sqlite3.dll"
- ...
4. tried to use PDO, it says it 'could not find driver'

Kim bana SQLite 3 çalışır almak yardımcı olabilir?

3 Cevap

SQLite 3 veritabanları ve benzer sorunlar bağlanma sorunu kaplı ve başlıklı bir forum sonrası üzerinde tartışılır, "Connecting to SQLite3 database from PHP 5.25" Bu sorguları bazılarına cevap verebilir.

SQLite son sürüme PHP5-derlenmiş ve PDO etkindir.

Bu gibi phpinfo.php gösterir

2.0-dev "$ No: sqlite.c, v 1.166.2.13.2.12 2008/12/31 11:17:44 sebastian Exp $"

Daha fazla test kodu ile ilgili bir sorun gibi geliyor. Standart Apache ve PHP aynı sürümü ile SQLite sistemde çalışan tarafından çapraz kontrol ettiniz mi? phpinfo(), vb gelen sonuç nedir?

Son MicroApache dağıtımlar bir demo / test olarak bir PHP / SQLite defterine ile birlikte gelir. Bu çalışmıyor mu?

Düşününce gel bir SQLite dağıtımı var olduğunu fark olmayabilir. Neden site tekrar ve (sadece halletmek ve çalıştırma) diğer sürümlerini kontrol değil.

Her zaman olduğu gibi MicroApache güvenlik yapılandırma özel dikkat etmeden bir kamu bakan sunucusu üzerinde kullanılmak üzere tasarlanmamıştır olduğunu işaret etmektedir. Bu disket veya USB stick üzerinden yerel bilgi paylaşımı bir yolu olarak sadece geliştirilmiştir. Bu olsa sertleşmesine kadar kolay.

Ben SQLite geliştirici açık işlevini içeren SQLite3 gelişine fonksiyonları bir dizi adını farkında olduğundan emin değilim - (buraya bakınız: An Introduction To The SQLite C/C++ Interface) - Bu nasıl muamele edildiğine emin değilim PHP içine bu kod tabanı da dahil olmak üzere PHP geliştiricileri tarafından. Yukarıda bağlantılı sayfasından öneri Doğru PHP kodu ile "olduğu gibi" sen Php3 DBS açabilirsiniz olmasıdır.

PHP'nin farklı dağıtımlar gelen Karıştırma DLL tavsiye edilmez. Ben "olduğu gibi" başka MicroApache dağıtıma başka kullanımını tavsiye etmiyoruz. MicroApache vb PHP farklı sürümleri gelen dll ekleme veya karıştırma ciddi hatalar veya güvenlik problemlerini tanıtmak olabilir.

There has been little or no interest in SQLite with MicroApache to date so I've really not dug too deeply into it other than to check the functionality works.
I don't rely too heavily on what's reported by phpinfo().

Rapor ediliyor sürümü doğru ise belki onaylamak için bilgi ile güncelleyebilirsiniz.

Update

Ben biraz daha araştırma için zaman ve bir tartışma php5-sqlite3 at the Mac OS Forge mailing list sorununuzu cevaplar yaşadım.

PHP uygulama kısmi ve iyi belgelenmiş değildir. Bazı SQLite3 usul fonksiyonu, sadece nesne tabanlı bir hiyerarşi tarafından maruz kalmaktadır. Usul API sadece bunu görünüyor nesneleri kullanarak sıkışmış konum çok SQLite 2 DBS açmak için yeteneği sunar.

There is also a PECL extension, php-sqlite3, which was developed during 2008, currently at version 0.6. This is what the php5-sqlite3 port installs. But it does not provide the sqlite3_open function you are seeking. Rather, it gives you an object-oriented interface based around three classes: SQLite3, SQLite3Stmt and SQLite3Result. It is described here, rather incompletely, notably the installation
instructions are totally missing:

Umarım bu dağıtımlar ile oynamak ve sorunları çözebilir.

Bir Sqlite3.dll VB5 / 6 veya DLL arayabilirsiniz uyumlu herhangi bir dilde doğrudan ulaşılabilir bir nezaket olarak dağıtımı orada bulunur.

Bu bazı süre önce bir göz vardı ayrı bir proje oldu. Bu orijinal kaynak düzenleyerek MSVC üretildi. Bu DLL PHP / PDO ile uyumlu değil ama bir CGI arabirimi üzerinden kullanılabilir. Seçenek olarak orijinal SQLite 3 DLL Delphi vs ile elde edilir ve kullanılabilir

Ben SQLite desteği ile dağıtımı var unutmayın. Ancak sadece sürüm 2 değil, 3 desteği vardır.

Benim MicroApache sürüm SQLite 2 desteğine sahip [...]

Daha hızlı olduğu için SQLite 3 kullanmak istiyorum, ben Delphi bir proje için oluşturulan veri tabanları ile etkileşim olabilir ve ben Firefox eklentisi SQLite Manager ile yeni oluşturulan veritabanlarına erişebilir.

Ben biraz daha bu sorunla tinkered, ama yine de bir SQLite 3 veritabanı erişim / oluşturamadı.

İlginçtir, Bölüm 1 sağlanan bağlantı PHP belgelerinde bulunmayan ve SQLite3 uzantısı bir parçası olmayan bir sınıf "SQLiteDatabase" bahseder (nesne yönelimli - senin son yazılan, Mad Max belirtildiği gibi).

"SQLiteDatabase" bir veritabanı oluşturur, ancak bunu açtığınızda, bunu 2.1 sürümünde olduğunu görebilirsiniz.

Yardımlarınız için teşekkürler.

EDIT:
PDO works only when I use the DSN prefix "sqlite2" which is not very surprising, since phpinfo() only lists the driver "sqlite2" under the section "PDO".