mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 08:58:56 +00:00
Some corrections and additions in readyness for 1.0 release.
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@132738 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
5ceab02627
commit
6564dbbe4a
8 changed files with 217 additions and 22 deletions
|
@ -1,13 +1,14 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<refentry id="function.sqlite-register-aggregate">
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
<refentry id="function.sqlite-create-aggregate">
|
||||
<refnamediv>
|
||||
<refname>sqlite_register_aggregate</refname>
|
||||
<refpurpose>Register an aggregating UDF for use in SQL statements</refpurpose></refnamediv>
|
||||
<refname>sqlite_create_aggregate</refname>
|
||||
<refpurpose>Register an aggregating UDF for use in SQL statements</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>bool</type><methodname>sqlite_register_aggregate</methodname>
|
||||
<type>bool</type><methodname>sqlite_create_aggregate</methodname>
|
||||
<methodparam><type>resource</type><parameter>db</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>function_name</parameter></methodparam>
|
||||
<methodparam><type>mixed</type><parameter>step_func</parameter></methodparam>
|
||||
|
@ -15,7 +16,7 @@
|
|||
<methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<function>sqlite_register_aggregate</function> is similar to
|
||||
<function>sqlite_create_aggregate</function> is similar to
|
||||
<function>sqlite_create_function</function> except that it registers
|
||||
functions that can be used to calculate a result aggregated across all the
|
||||
rows of a query.
|
||||
|
@ -92,6 +93,14 @@ var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));
|
|||
though, we have been calculating the result as the query progressed, so we
|
||||
simply need to return the context value.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
The example above will not work correctly if the column contains binary
|
||||
data. Take a look at the manual page for
|
||||
<function>sqlite_udf_decode_binary</function> for an explanation of why
|
||||
this is so, and an example of how to make it respect the binary encoding.
|
||||
</para>
|
||||
</note>
|
||||
<tip>
|
||||
<para>
|
||||
It is NOT recommended for you to store a copy of the values in the context
|
||||
|
@ -101,8 +110,17 @@ var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));
|
|||
in length.
|
||||
</para>
|
||||
</tip>
|
||||
<tip>
|
||||
<para>
|
||||
You can use <function>sqlite_create_function</function> and
|
||||
<function>sqlite_create_aggregate</function> to override SQLite native
|
||||
SQL functions.
|
||||
</para>
|
||||
</tip>
|
||||
<para>
|
||||
See also <function>sqlite_create_function</function>.
|
||||
See also <function>sqlite_create_function</function>,
|
||||
<function>sqlite_udf_encode_binary</function> and
|
||||
<function>sqlite_udf_decode_binary</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<!-- $Revision: 1.4 $ -->
|
||||
<refentry id="function.sqlite-create-function">
|
||||
<refnamediv>
|
||||
<refname>sqlite_create_function</refname>
|
||||
|
@ -90,7 +90,8 @@ $rows = sqlite_array_query($db, "SELECT php('md5', filename) from files");
|
|||
For performance reasons, PHP will not automatically encode/decode binary
|
||||
data passed to and from your UDF's. You need to manually encode/decode
|
||||
the parameters and return values if you need to process binary data in
|
||||
this way.
|
||||
this way. Take a look at <function>sqlite_udf_encode_binary</function>
|
||||
and <function>sqlite_udf_decode_binary</function> for more details.
|
||||
</para>
|
||||
</note>
|
||||
<tip>
|
||||
|
@ -100,8 +101,15 @@ $rows = sqlite_array_query($db, "SELECT php('md5', filename) from files");
|
|||
application.
|
||||
</para>
|
||||
</tip>
|
||||
<tip>
|
||||
<para>
|
||||
You can use <function>sqlite_create_function</function> and
|
||||
<function>sqlite_create_aggregate</function> to override SQLite native
|
||||
SQL functions.
|
||||
</para>
|
||||
</tip>
|
||||
<para>
|
||||
See also <function>sqlite_register_aggregate</function>.
|
||||
See also <function>sqlite_create_aggregate</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<!-- $Revision: 1.4 $ -->
|
||||
<refentry id="function.sqlite-escape-string">
|
||||
<refnamediv>
|
||||
<refname>sqlite_escape_string</refname>
|
||||
|
@ -39,6 +39,14 @@
|
|||
when retrieving your data.
|
||||
</simpara>
|
||||
</warning>
|
||||
<note>
|
||||
<simpara>
|
||||
Do not use this function to encode the return values from UDF's created
|
||||
using <function>sqlite_create_function</function> or
|
||||
<function>sqlite_create_aggregate</function> - use
|
||||
<function>sqlite_udf_encode_binary</function> instead.
|
||||
</simpara>
|
||||
</note>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
<!-- Keep this comment at the end of the file
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<!-- $Revision: 1.4 $ -->
|
||||
<refentry id="function.sqlite-libencoding">
|
||||
<refnamediv>
|
||||
<refname>sqlite_libencoding</refname>
|
||||
|
@ -32,12 +32,14 @@
|
|||
example), and some comparison operations may still not be carried out
|
||||
correctly.
|
||||
</para>
|
||||
<para>
|
||||
It is not recommended that you use PHP in a web-server configuration
|
||||
with a version of the SQLite library compiled with UTF-8 support, since
|
||||
libsqlite will abort the process if it detects a problem with the
|
||||
UTF-8 encoding.
|
||||
</para>
|
||||
<warning>
|
||||
<para>
|
||||
It is not recommended that you use PHP in a web-server configuration
|
||||
with a version of the SQLite library compiled with UTF-8 support, since
|
||||
libsqlite will abort the process if it detects a problem with the
|
||||
UTF-8 encoding.
|
||||
</para>
|
||||
</warning>
|
||||
<para>
|
||||
See also <function>sqlite_libversion</function>.
|
||||
</para>
|
||||
|
|
98
reference/sqlite/functions/sqlite-udf-decode-binary.xml
Normal file
98
reference/sqlite/functions/sqlite-udf-decode-binary.xml
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
<refentry id="function.sqlite-udf-decode-binary">
|
||||
<refnamediv>
|
||||
<refname>sqlite_udf_decode_binary</refname>
|
||||
<refpurpose>Decode binary data passed as parameters to an UDF</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>string</type><methodname>sqlite_udf_decode_binary</methodname>
|
||||
<methodparam><type>string</type><parameter>data</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<function>sqlite_udf_decode_binary</function> decodes the binary encoding
|
||||
that was applied to the parameter by either
|
||||
<function>sqlite_udf_encode_binary</function> or
|
||||
<function>sqlite_escape_string</function>.
|
||||
</para>
|
||||
<para>
|
||||
You must call this function on parameters passed to your UDF if you need
|
||||
them to handle binary data, as the binary encoding employed by PHP will
|
||||
obscure the content and of the parameter in its natural, non-coded form.
|
||||
</para>
|
||||
<para>
|
||||
PHP does not perform this encode/decode operation automatically as it would
|
||||
severely impact performance if it did.
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
<title>binary-safe max_length aggregation function example</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$data = array(
|
||||
'one',
|
||||
'two',
|
||||
'three',
|
||||
'four'
|
||||
'five'
|
||||
'six',
|
||||
'seven',
|
||||
'eight',
|
||||
'nine'
|
||||
'ten'
|
||||
);
|
||||
$db = sqlite_open(':memory:');
|
||||
sqlite_query($db, "CREATE TABLE strings(a)");
|
||||
foreach ($data as $str) {
|
||||
sqlite_query($db, "INSERT INTO strings VALUES('" .
|
||||
sqlite_escape_string($str) . "')");
|
||||
}
|
||||
|
||||
function max_len_step(&$context, $string) {
|
||||
$string = sqlite_udf_decode_binary($string);
|
||||
if (strlen($string) > $context) {
|
||||
$context = strlen($string);
|
||||
}
|
||||
}
|
||||
|
||||
function max_len_finalize(&$context) {
|
||||
return $context;
|
||||
}
|
||||
|
||||
sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');
|
||||
|
||||
var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));
|
||||
|
||||
?>]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</para>
|
||||
<para>
|
||||
See also <function>sqlite_udf_encode_binary</function>,
|
||||
<function>sqlite_create_function</function> and
|
||||
<function>sqlite_create_aggregate</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
62
reference/sqlite/functions/sqlite-udf-encode-binary.xml
Normal file
62
reference/sqlite/functions/sqlite-udf-encode-binary.xml
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.1 $ -->
|
||||
<refentry id="function.sqlite-udf-encode-binary">
|
||||
<refnamediv>
|
||||
<refname>sqlite_udf_encode_binary</refname>
|
||||
<refpurpose>Encode binary data before returning it from an UDF</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>string</type><methodname>sqlite_udf_encode_binary</methodname>
|
||||
<methodparam><type>string</type><parameter>data</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
<function>sqlite_udf_encode_binary</function> applies a binary encoding
|
||||
to the <parameter>data</parameter> so that it can be safely returned from
|
||||
queries (since the underlying libsqlite API is not binary safe).
|
||||
</para>
|
||||
<para>
|
||||
If there is a chance that your data might be binary unsafe (eg: it
|
||||
contains a NUL byte in the middle rather than at the end, or if it has and
|
||||
<literal>0x01</literal> byte as the first character) then you must
|
||||
call this function to encode the return value from your UDF.
|
||||
</para>
|
||||
<para>
|
||||
PHP does not perform this encode/decode operation automatically as it would
|
||||
severely impact performance if it did.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
Do not use <function>sqlite_escape_string</function> to quote strings
|
||||
returned from UDF's as it will lead to double-quoting of the data. Use
|
||||
this function instead!
|
||||
</para>
|
||||
</note>
|
||||
<para>
|
||||
See also <function>sqlite_udf_decode_binary</function>,
|
||||
<function>sqlite_escape_string</function>,
|
||||
<function>sqlite_create_function</function> and
|
||||
<function>sqlite_create_aggregate</function>.
|
||||
</para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.2 $ -->
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<section id="sqlite.configuration">
|
||||
&reftitle.runtime;
|
||||
&extension.runtime;
|
||||
|
@ -18,7 +18,7 @@
|
|||
<row>
|
||||
<entry>sqlite.assoc_case</entry>
|
||||
<entry>0</entry>
|
||||
<entry>PHP_INI_SYSTEM</entry>
|
||||
<entry>PHP_INI_ALL</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.5 $ -->
|
||||
<!-- $Revision: 1.6 $ -->
|
||||
<reference id="ref.sqlite">
|
||||
<title>SQLite</title>
|
||||
<titleabbrev>SQLite</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
&warn.experimental;
|
||||
<section id="sqlite.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
|
|
Loading…
Reference in a new issue