SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7)

SQLite3::createCollationRegisters a PHP function for use as an SQL collating function

说明

public SQLite3::createCollation ( string $name , callable $callback ) : bool

Registers a PHP function or user-defined function for use as a collating function within SQL statements.

参数

name

Name of the SQL collating function to be created or redefined

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the collation. It should accept two values and return as strcmp() does, i.e. it should return -1, 1, or 0 if the first string sorts before, sorts after, or is equal to the second.

This function need to be defined as:

collation ( mixed $value1 , mixed $value2 ) : int

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

Example #1 SQLite3::createCollation() example

Register the PHP function strnatcmp() as a collating sequence in the SQLite3 database.

<?php

$db 
= new SQLite3(":memory:");
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->createCollation('NATURAL_CMP''strnatcmp');

$defaultSort $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");

echo 
"default:\n";
while (
$row $defaultSort->fetchArray()){
    echo 
$row['col1'], "\n";
}

echo 
"\nnatural:\n";
while (
$row $naturalSort->fetchArray()){
    echo 
$row['col1'], "\n";
}

$db->close();

?>

以上例程会输出:

default:
a1
a10
a2

natural:
a1
a2
a10

参见

相关文章
php cubrid mysql 兼容性函数 escape special characters in a string for use in an sql statementphp maxdb 函数 escapes special characters in a string for use in an sql statement taking into account the current charset of the connectionphp mssql 函数 send ms sql queryphp sqlite 函数 returns the number of rows that were changed by the most recent sql statementphp sqlite 函数 register an aggregating udf for use in sql statementsphp sqlite 函数 registers a regular user defined function for use in sql statementsphp sqlite 函数 escapes a string for use as a query parameterphp mysqlnduhconnection escapes special characters in a string for use in an sql statement taking into account the current charset of the connectionphp sqlite pdo registers an aggregating user defined function for use in sql statementsphp sqlite pdo registers a user defined function for use as a collating function in sql statementsphp sqlite pdo registers a user defined function for use in sql statementsphp sqlite3 returns the number of database rows that were changed or inserted or deleted by the most recent sql statementphp sqlite3 instantiates an sqlite3 object and opens an sqlite 3 databasephp sqlite3 registers a php function for use as an sql aggregate functionphp sqlite3 registers a php function for use as an sql collating functionphp sqlite3 registers a php function for use as an sql scalar functionphp sqlite3 prepares an sql statement for executionphp sqlite3 executes an sql queryphp sqlite3 executes a query and returns a single resultphp sqlite3stmt get the sql of the statement
关注编程学问公众号