php教程

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7)

PDO::sqliteCreateCollation Registers a User Defined Function for use as a collating function in SQL statements

说明

public PDO::sqliteCreateCollation ( string $name , callable $callback ) : bool
Warning

此函数是实验性的。此函数的表象,包括名称及其相关文档都可能在未来的 PHP 发布版本中未通知就被修改。使用本函数风险自担 。

参数

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 strings 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 ( string $string1 , string $string2 ) : int

返回值

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

范例

Example #1 PDO::sqliteCreateCollation() example

<?php
$db 
= new PDO('sqlite::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->sqliteCreateCollation('NATURAL_CMP''strnatcmp');
foreach (
$db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
  echo 
$row['col1'] . "\n";
}
echo 
"\n";
foreach (
$db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
  echo 
$row['col1'] . "\n";
}
?>

以上例程会输出:

a1
a10
a2

a1
a2
a10

注释

Note:

This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

User Contributed Notes

There are no user contributed notes for this page.

CopyRight © 2008-2022 verySource.Com All Rights reserved. 京ICP备17048824号-1 京公网安备:11010502034788