PHP

SQLite3::createCollation

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7)

SQLite3::createCollat​​ion - 注册一个PHP函数用作SQL整理函数

描述

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

注册一个PHP函数或用户定义的函数,用作SQL语句中的整理函数。

参数

name

要创建或重新定义的SQL整理函数的名称

callback

用于定义排序行为的PHP函数或用户定义函数的名称。它应该接受两个字符串,并以strcmp()的形式返回,即,如果第一个字符串在之前排序,排序或等于第二个字符串,它应该返回-1,1或0。

返回值

成功时返回TRUE或失败时返回FALSE

示例

Example #1 SQLite3::createCollation() example

在SQLite3数据库中注册PHP函数strnatcmp()作为整理序列。

<?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

另请参阅

← SQLite3::createAggregate

SQLite3::createFunction →