文字

SQLite3 类

(PHP 5 >= 5.3.0)

简介

实现与 SQLite 3 数据库对接的类。

类摘要

SQLite3 {
public bool busyTimeout ( int $msecs )
public int changes ( void )
public bool close ( void )
public __construct ( string $filename [, int $flags [, string $encryption_key ]] )
public bool createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )
public bool createCollation ( string $name , callable $callback )
public bool createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )
public static string escapeString ( string $value )
public bool exec ( string $query )
public int lastErrorCode ( void )
public string lastErrorMsg ( void )
public int lastInsertRowID ( void )
public bool loadExtension ( string $shared_library )
public void open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key ]] )
public SQLite3Stmt prepare ( string $query )
public SQLite3Result query ( string $query )
public mixed querySingle ( string $query [, bool $entire_row = false ] )
public static array version ( void )
}

Table of Contents

  • SQLite3::busyTimeout — Sets the busy connection handler
  • SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement
  • SQLite3::close — Closes the database connection
  • SQLite3::__construct — Instantiates an SQLite3 object and opens an SQLite 3 database
  • SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function
  • SQLite3::createCollation — Registers a PHP function for use as an SQL collating function
  • SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function
  • SQLite3::escapeString — Returns a string that has been properly escaped
  • SQLite3::exec — Executes a result-less query against a given database
  • SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request
  • SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request
  • SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database
  • SQLite3::loadExtension — Attempts to load an SQLite extension library
  • SQLite3::open — Opens an SQLite database
  • SQLite3::prepare — Prepares an SQL statement for execution
  • SQLite3::query — Executes an SQL query
  • SQLite3::querySingle — Executes a query and returns a single result
  • SQLite3::version — Returns the SQLite3 library version as a string constant and as a number

用户评论:

[#1] Anonymous [2013-09-05 04:06:32]

There is an undocumented method "createCollation" in this class, as reported on https://bugs.php.net/bug.php?id=65216

The syntax of the method is similar to usort for example:

createCollation(collation_name, callback)

The callback function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. 

Here is one example of use to collate unicode text as ASCII, so that for example in french ?milie will be ordered just after Emile and not after Zebra like it's the case with the default BINARY collation. This requires the "intl" module to be installed, see PHP doc for details (or apt-get install php5-intl in deb based distros).

<?php

$db 
= new SQLite3(':memory:');

$db->createCollation('translit_ascii', function ($a$b) {
    
$a transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()'$a);
    
$b transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()'$b);
    return 
strcmp($a$b);
});

$db->exec('
  CREATE TABLE people (name COLLATE translit_ascii);
  INSERT INTO people VALUES ("?milie");
  INSERT INTO people VALUES ("Zebra");
  INSERT INTO people VALUES ("Emile");
  INSERT INTO people VALUES ("Arthur");
'
);

$stmt $db->prepare('SELECT name FROM people ORDER BY name;');
$result $stmt->execute();

while (
$row $result->fetchArray())
{
    echo 
$row['name'] . PHP_EOL;
}

// Displays:
// Arthur
// Emile
// ?milie
// Zebra

?>

上一篇: 下一篇: