Download PHP and SQLite

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
PHP and SQLite
Using SQLite with PHP
By: Rock Mutchler
SQLite in PHP
• What is SQLite ?
• How do I get SQLite for PHP ?
• A Basic PHP Examples
• Where would I use SQLite ?
• Other Examples
• Some Performance Ideas
What is SQLite ?
• SQLite.org definition
– SQLite is a small C library that
implements a self-contained,
embeddable, zero-configuration SQL
database engine.
Features of SQLite
• No configuration
• Implements most of SQL92
– Things not included
• Foreign key constraints (not enforced)
• Complete trigger support (missing some sub
features)
• Some Alter table commands are omitted
• Nested transactions (single level only)
• RIGHT OUTER JOIN or FULL OUTER JOIN are not
implemented
• Views are read-only
• No Grant and Revoke, normal file access is used
Features of SQLite, cont..
• A database is a single file
• Supports databases up to 2
terabytes in size
• Sizes of strings and BLOBs limited
only by available memory.
• ACID
• Very small code footprint
Item to Keep in Mind
• Type less Fields
– Fields in an SQLite database need not be
associated with a specific type, and even if
they are, you can still insert values of
different types into them. (do application
level type checking)
• Database is a single file
– This means writes are database locking
How do I get SQLite for
PHP ?
• SQLite 2
– Comes with PHP5
– PECL extension for PHP4
• SQLite 3
– Only supported in PHP by using the
PDO library
*note: SQLite 3 can read SQLite 2 databases, but in doing so it
converts the database to SQLite 3, making it unusable by SQLite 2.
Basic SQLite connection
<?php
// set path of database file
define('SQLITE_DB', '/usr/local/SQLite/store.db');
// open database file
$handle = sqlite_open(SQLITE_DB);
// the query
$query = "SELECT name FROM users";
// execute query
$result = sqlite_query($handle, $query);
// if rows exist
if (sqlite_num_rows($result) > 0) {
.......
Where to use SQLite
• Hosting where other solutions are
not available.
• Prototyping, using PDO
• High read systems, with low writes
– As a caching mechanism
– Items that don’t have to be refreshed
from other / remote external sources
a lot
Other Examples
• See code…..
Some Performance Ideas
• Use your indexes!
• Performing several updates to the db
– Bundle them into a single transaction
(single write, instead of many, much faster)
• PRAGMA
– Cache_size, if your performing a number of
updates and deletes, setting this high can
help speed things up
• in-memory database
– This is done in PDO by specifying the path
as ‘:memory:’
• Run the VACUUM
Other Resources
• http://sqlite.org/
• http://www.php.net/SQLite
• http://devzone.zend.com/node/vie
w/id/644
• http://devzone.zend.com/node/vie
w/id/645
• http://devzone.zend.com/node/vie
w/id/863