Как использовать базу данных sqlite с xampp используя php - PullRequest
8 голосов
/ 05 августа 2011

Как установить базу данных sqlite или sqlite 3 с сервером xampp и как использовать базу данных sqlite или sqlite 3 с помощью php-скриптов или программ ...

Ответы [ 4 ]

5 голосов
/ 05 августа 2011

Создание базы данных sqlite

Для этого есть две возможности:

  1. Запись ваших DDL-операторов (CREATE TABLE ...) в файл .sql и выполнение их с помощью командной строки sqlite (при условии, что ваши операторы CREATE TABLE находятся в файле с именем tabledef.sql):

    cat tabledef.sql | sqlite3 yourdbname.db
    
  2. Использование PHP для выполнения DDL-операторов в подключенной базе данных (см. «Выполнение операторов»).

Подключение к базе данных sqlite

Вы обязательно должны использовать PDO для этого:

$dbh = new PDO('sqlite:/path/to/your/database.db', '', '', array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
));

Если база данных не существует, то она создается. Но вам нужен доступ для записи в каталог, который содержит базу данных. Если вы разрешите доступ на запись только к файлу базы данных, sqlite завершится сбоем, поскольку ему также необходимо создать файл блокировки в том же каталоге.

Выполнение выписки

Теперь, когда у вас есть соединение, вы можете выполнять свои действия с базой данных, например, выполнять некоторые DDL-операторы:

$dbh->exec("CREATE TABLE IF NOT EXISTS mytable (
    mypk INTEGER PRIMARY KEY AUTOINCREMENT,
    myvalue TEXT);");

Или, если вам нужно динамически генерировать операторы SQL, используйте подготовленные операторы:

$statement = $dbh->prepare("INSERT INTO mytable (myvalue) VALUES(?)");

$statement->execute(array("hello"));
$statement->execute(array("world"));

Это только небольшой обзор, для получения дополнительной информации вам следует ознакомиться с руководством PDO и sqlite Documentation .

3 голосов
/ 05 августа 2011

Хорошо, чтобы увидеть, установлен ли он, проверьте phpinfo () и посмотрите, установлены ли драйверы для sqlite (поищите в списке «sqlite»), в нем будут отдельно упомянуты sqlite и и sqlite 3.Я думаю, что они оба предустановлены с XAMPP, поэтому он должен просто работать.Затем проверьте руководство по PHP для sqlite функций или используйте обертки PDO.Google твой друг.

2 голосов
/ 04 мая 2018

Для активации SQLite3 в Xampp (v3.2.2).Откройте xampp/php/php.ini, откомментируйте строку ;extension=sqlite3 (получите;), сохраните php.ini и перезапустите сервер Xampp.

1 голос
/ 24 февраля 2013

Вы можете использовать оболочку базы данных, которая может сделать вещи намного проще.

Попробуйте это, я сделал это:

<?php
Class Sqlite3_Wrapper
{

    private $sFileName, $oCon=null, $iDebug, $oResult;
    private $sDefaultFile = 'default.db';

    public function __construct($sFileName, $iDebug=false)
    {
         $this->setFileName($sFileName);
    }

    private function showMessage($sMsg)
    {
         if($this->iDebug != false)
         {
              $sMessage = (php_sapi_name() == 'cli')?$sMsg."\n":$sMsg.'<br />' ;
              echo $sMessage;
         }
    }

    public function setFileName($sFileName)
    {
         if(is_string($sFileName) && strlen($sFileName)>0)
         {
              $this->sFileName = $sFileName;
         }
         else
         {
              $this->sFileName = $this->sDefaultFile;
         }
    }

    public function openDB($sFileName=false)
    {
         if($sFileName!==false)
         {
              $this->setFileName($sFileName);
         }
         try
         {
              $this->oCon = new SQLite3($this->sFileName);
         }catch(Exception $oEx)
         {
              $this->showMessage($ex->getMessage());
         }

    }

    public function closeDB()
    {
         if($this->oCon!=null)
         {
              $this->oCon->close();
              $this->oCon = null;
         }
    }

    public function executeCUDQuery($sQuery)
    {
         if($this->oCon==null)
         {
              $this->showMessage('Not connected to database');
         }
         else
         {
              try
              {
                   $this->oCon->exec($sQuery);
              }catch(Exception $ex)
              {
                   $this->showMessage($ex->getMessage());
              }
         }
    }

    public function executeQuery($sQuery)
    {
         $this->oResult = null;
         if($this->oCon==null)
         {
              $this->showMessage('Not connected to database');
         }
         else{
              try
              {
                   $this->oResult = $this->oCon->query($sQuery);
              }catch(Exception $oEx)
              {
                   $this->showMessage($oEx->getMessage());
              }
         }
         return $this->oResult;
     }

     public function fetch($iMode=SQLITE3_NUM)
     {
     $aData = array();
     try
     {
         $aData = $this->oResult->fetchArray($iMode);
     }
     catch(Exception $oEx)
     {
         $this->showMessage($oEx->getMessage());
     }
     return $aData;
  }
 }
?>

или получите файлы здесь:

http://vaan3713.github.com/databaseswrappers/

желаю, чтобы это помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...