Nasıl kullanabilir ve PHP ve Wamp Server kullanarak bir SQLite DB erişebilir?

3 Cevap php

3 Cevap

Ben class SQLiteDatabase uzantısı olduğunu düşünüyorum sqlite yerine pdo_sqlite. Yani sqlite uzatma sağlayabilir, ya da bunun yerine PDO kullanabilirsiniz:

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

Windows sizin ini kümesi şu olması gerekir:

extension=php_pdo.dll
extension=php_sqlite.dll

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

Class SQLiteDatabase fakat çeşitli sistemler ve yapılandırmasına, PHP 5.4 düştü bu kütüphane işaretlenen uzun zaman oldu gibi, bir önceki sürümlerde devre dışı olabilir destek sqlite kütüphane, bir nesne olarak going to be deprecated.

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

Şunları yapabilirsiniz:

  1. php_sqlite.dll (php_sqlite.so) yere internette bulmaya çalışın. this veya this sizin için yararlı olabilir gibi bağlantılar. Ancak, dikkatli PHP'nin platformu (x64 veya x86), motoru oluşturmak (VC6, {[(7 eski SQLite kütüphanesi dosyasını eşleşmesi gerekir )]} veya VC11), sürüm (5.x) ve tipi (TS {için [(11)]} veya NTS için non-thread safe). Bu zor bir görev olabilir.

  2. php_sqlite.dll (SQLiteDatabase) arkasında ve gemi yeni php_sqlite3.dll (SQLite3 nesne) doğru bırakın. Önce (boyutunu bile yarı yarıya düşürülebilir) 2,1-3,0 veritabanı dosyasını dönüştürmek ve sonra dikkatlice SQLite karşılaştırmak ve {[(6 SQLite Studio gibi bir araç kullanmak zorunda )]} PHP kılavuzu sayfaları gerekli nesneleri değiştirmek ve işlevleri arayın.

Seçeneği two, değişiklikler o büyük değil gibi, bu zor bir iş olmamalı unutmayın eğer. Örneğin, ne kadar öğrendim:

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

Getiriliyor ise, eski de SQLite biz vardı:

$rowsIMEI = $db->unbufferedQuery($imeiSQL)->fetchAll(SQLITE_ASSOC);

foreach($rowsIMEI as $r)
{
    ...
}

Iken, yeni yılında SQLite3 yapmalıyız:

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

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

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

Ben, tabii, şiddetle herkes ileri gitmek ve second seçeneğini seçmek için tavsiye. İlerleme çoğu durumda iki seçenekten daha iyi biridir.