2009-07-07 18 views
8

PHP 5'in zaten SQLite'yi desteklediğini biliyorum, ancak bir nedenden dolayı çalışamıyorum.PHP ve Wamp Server kullanarak bir SQLite DB'yi nasıl kullanabilirim?

SQLite tutorial: Getting started numaralı yönergeleri izledim. Ben de şu php.ini dan dışında olmadığından emin yaptı:

extension=php_pdo_sqlite.dll 
extension=php_sqlite.dll. 

Ama Firefox kullanarak localhost dan PHP dosyasını açtığınızda, bu hatayı alıyorum: Ben

Fatal error: Class 'SQLiteDatabase' not found.

Bu arada, bu bilgi önemlidir.

Bu sorunun nedeni ne olabilir?

cevap

8

SQLiteDatabase sınıfı, sqlite sınıfından ziyade pdo_sqlite uzantısından geliyor. Yani sqlite uzantıyı etkinleştirmek olabilir veya onun yerine PDO kullanılabilir: Windows'ta

<?php 
$conn = new PDO('sqlite:c:/mydb.sq3'); 
$conn->exec('some sql query'); 
+0

Çok teşekkürler! Sanırım db'yi açmayı başarabiliyordum çünkü artık hatalar sorguya ait! Şimdi sadece sözdizimini ve hepsini öğrenmeliyim! Tekrar teşekkürler! – Jarvis

5

Eğer ini aşağıdaki ayarlamak olması gerekir:

extension=php_pdo.dll 
extension=php_sqlite.dll 

Sana kılavuzda this page okumanızı öneririz.

2

Sınıf SQLiteDatabase desteği PHP 5.4 düştü edildi sqlite kütüphaneden bir nesne, ancak bu kütüphane uzun zaman kaldırılacaktır gidiş olarak işaretlenmiş olduğu gibi çeşitli sistemler ve yapılandırmasına, önceki sürümlerde devre dışı edilebilir.

Kütüphane php_sqlite.dll (Windows) veya php_sqlite.so (Linux) artık PHP yeni sürümlerinde desteklenir ve sırasıyla php_sqlite3.dll veya php_sqlite3.so ile değiştirildi. Şunları yapabilirsiniz

:

  1. deneyin php_sqlite.dll (php_sqlite.so) yerde internette bulmak için. this veya this gibi bağlantılar sizin için yararlı olabilir. Ancak, dikkatli için güvenli iplik veya NTS için inşa motoru (VC6, VC9 veya VC11), sürüm (5.x) ve türünü (TS sizin PHP'nin platformu (x64 veya x86) eski SQLite kitaplık dosyası eşleşecek gerekecek dişli olmayan emniyetli). Bu zor bir görev olabilir.

  2. bırak php_sqlite.dll (SQLiteDatabase) arkasında ve yeni php_sqlite3.dll (SQLite3 nesne) doğru gemi. İlk olarak, SQLite Studio veritabanı aracınızı 2.1'den 3.0'a dönüştürmek için bir araç kullanmanız gerekir (boyut bir yarıya kadar azaltılabilir) ve daha sonra gerekli nesneleri ve işlevleri değiştirmek için SQLite ve SQLite3 PHP manuel sayfalarını dikkatlice karşılaştırın.

iki değişiklikler büyük değil bu, zor bir iş olmamalı unutmayın seçenek ise.Örneğin, ne kadar öğrendiğim:

  • SQLiteDatabase ->SQLite3,
  • SQLiteDatabase::unbufferedQuery ->SQLite3::query,
  • SQLiteResult::fetchAll(SQLITE_*) ->SQLite3Result::fetchArray(SQLITE3_*) getirilirken gelince vb

, içinde Eski SQLite biz vardı:

ederken, we should yeni SQLite3 yılında:

$rowsIMEI = $db->query($imeiSQL); 

while($r = $rowsIMEI->fetchArray(SQLITE3_ASSOC)) 
{ 
    ... 
} 

Diğer değişiklikler işin benzer gerektirir, bu nedenle bu ömür boyu süreç olmamalıdır.

Tabii ki, ileride herhangi birinin ileri gitmesini ve ikinci seçeneğini seçmesini şiddetle tavsiye ediyorum. İlerleme çoğu durumda mevcut iki seçenek arasından daha iyidir.

İlgili konular