SQLite3::createCollation
SQLite3::createCollation
(PHP 5 >= 5.3.11, PHP 7)
SQLite3::createCollation - 注册一个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 →