Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 703d980c580707c382b4e43e25965bc5 > files > 9712

php-manual-pt_BR-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>sqlite_create_function</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Manual do PHP"
HREF="index.html"><LINK
REL="UP"
TITLE="SQLite"
HREF="ref.sqlite.html"><LINK
REL="PREVIOUS"
TITLE="sqlite_create_aggregate"
HREF="function.sqlite-create-aggregate.html"><LINK
REL="NEXT"
TITLE="sqlite_current"
HREF="function.sqlite-current.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="refentry"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Manual do PHP</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="function.sqlite-create-aggregate.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="function.sqlite-current.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="function.sqlite-create-function"
></A
>sqlite_create_function</H1
><DIV
CLASS="refnamediv"
><A
NAME="AEN210831"
></A
><P
>    (PHP 5)</P
>sqlite_create_function&nbsp;--&nbsp;
   Registra uma Função Definida pelo Usuário (UDF) para usar em SQL.
  </DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN210834"
></A
><H2
>Descrição</H2
>bool <B
CLASS="methodname"
>sqlite_create_function</B
> ( resource dbhandle, string function_name, mixed callback [, int numero_de_argumentos] )<BR
></BR
><P
>&#13;   <B
CLASS="function"
>sqlite_create_function()</B
> permite a você registrar uma função do PHP
   para usar com o SQLite como uma <ACRONYM
CLASS="acronym"
>UDF</ACRONYM
> (Função Definida
   pelo Usuário), assim ela pode ser usada apartir de suas SQLs.
  </P
><P
>&#13;   O parâmetro <CODE
CLASS="parameter"
>dbhandle</CODE
> especifica o banco de dados
   que você quer estender, <CODE
CLASS="parameter"
>function_name</CODE
> especifica no nome da função
   que você quer usar em seus SQL,
   <CODE
CLASS="parameter"
>callback</CODE
> é qualquer função valida(função criada com function)
   que deve ser chamada para cuidar da função SQL.
   O parâmetro opcional <CODE
CLASS="parameter"
>numero_de_argumentos</CODE
> é usado como uma dica
   pelo interpretador do SQLite. É recomendado que você especifique um valor apenas
   se sua função aceitar sempre um numero fixo de parâmetros.
  </P
><P
>&#13;   A UDF pode ser usada em qualquer SQL que possa chamar funções, como
   SELECT e UPDATE, também em triggers.
  </P
><P
>&#13;   <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN210861"
></A
><P
><B
>Exemplo 1. Exemplo de <B
CLASS="function"
>sqlite_create_function()</B
></B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /></font><font color="#007700">function </font><font color="#0000BB">md5_and_reverse</font><font color="#007700">(</font><font color="#0000BB">$string</font><font color="#007700">) <br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return </font><font color="#0000BB">strrev</font><font color="#007700">(</font><font color="#0000BB">md5</font><font color="#007700">(</font><font color="#0000BB">$string</font><font color="#007700">));<br />}<br /><br />if (</font><font color="#0000BB">$dbhandle </font><font color="#007700">= </font><font color="#0000BB">sqlite_open</font><font color="#007700">(</font><font color="#DD0000">'mysqlitedb'</font><font color="#007700">, </font><font color="#0000BB">0666</font><font color="#007700">, </font><font color="#0000BB">$sqliteerror</font><font color="#007700">)) {<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">sqlite_create_function</font><font color="#007700">(</font><font color="#0000BB">$dbhandle</font><font color="#007700">, </font><font color="#DD0000">'md5rev'</font><font color="#007700">, </font><font color="#DD0000">'md5_and_reverse'</font><font color="#007700">, </font><font color="#0000BB">1</font><font color="#007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$sql&nbsp;&nbsp;</font><font color="#007700">= </font><font color="#DD0000">'SELECT md5rev(filename) FROM files'</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$rows </font><font color="#007700">= </font><font color="#0000BB">sqlite_array_query</font><font color="#007700">(</font><font color="#0000BB">$dbhandle</font><font color="#007700">, </font><font color="#0000BB">$sql</font><font color="#007700">);<br />} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;echo </font><font color="#DD0000">'Erro ao abrir o banco de dados sqlite: ' </font><font color="#007700">. </font><font color="#0000BB">$sqliteerror</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;exit;<br />}<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
  </P
><P
>&#13;   Neste exemplo, nós temos uma função que calcula a soma md5 de uma string
   e a reverte. Quando a SQL é executada, retorna o valor de filename transformado pela nossa função.
   Os dados retornados em <CODE
CLASS="parameter"
>$rows</CODE
> contém o resultado processado.
  </P
><P
>&#13;   A beleza desta tecnica é que você não precisa processar o resultado
   usando um loop foreach() depois de ter feito a query na tabela.
  </P
><P
>&#13;   O PHP registra uma função chamada <TT
CLASS="literal"
>php</TT
> quando
   o banco de dados é aberto. A função php pode ser usada para chamar 
   qualquer função do PHP sem precisar registrar ela antes.
  </P
><P
>&#13;   <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN210871"
></A
><P
><B
>Exemplo 2. Exemplo de como usar a função php</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$rows </font><font color="#007700">= </font><font color="#0000BB">sqlite_array_query</font><font color="#007700">(</font><font color="#0000BB">$dbhandle</font><font color="#007700">, </font><font color="#DD0000">"SELECT php('md5', filename) from files"</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
><P
>&#13;     Esta função irá chamar a função <A
HREF="function.md5.html"
><B
CLASS="function"
>md5()</B
></A
> para cada
     coluna <TT
CLASS="literal"
>filename</TT
> na tabela e retornar o resultado 
     em <CODE
CLASS="parameter"
>$rows</CODE
>
    </P
></DIV
></TD
></TR
></TABLE
>
  </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Nota: </B
>
    Por razões de velocidade, O PHP não irá codificar/decodificar dados binários
    passados para e das UDF´s. Você precisa manualmente codificar/decodificar
    os parâmetros e valores de retorno de precisar lidar com dados binários
    desta maneira. De uma olhada em <A
HREF="function.sqlite-udf-encode-binary.html"
><B
CLASS="function"
>sqlite_udf_encode_binary()</B
></A
>
    e <A
HREF="function.sqlite-udf-decode-binary.html"
><B
CLASS="function"
>sqlite_udf_decode_binary()</B
></A
> para maiores detalhes.
   </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="tip"
><BLOCKQUOTE
CLASS="tip"
><P
><B
>Dica: </B
>
    Não é recomendado usar UDF's para procassar dados binários, 
    a menos que velocidade não seja um requerimento para a sua aplicação.
   </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="tip"
><BLOCKQUOTE
CLASS="tip"
><P
><B
>Dica: </B
>
    Você pode usar <B
CLASS="function"
>sqlite_create_function()</B
> e
    <A
HREF="function.sqlite-create-aggregate.html"
><B
CLASS="function"
>sqlite_create_aggregate()</B
></A
> para sobrescrever as funções
    nativas de SQL do SQLite.
   </P
></BLOCKQUOTE
></DIV
><P
>&#13;   Veja também <A
HREF="function.sqlite-create-aggregate.html"
><B
CLASS="function"
>sqlite_create_aggregate()</B
></A
>.
  </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="function.sqlite-create-aggregate.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Principal</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="function.sqlite-current.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>sqlite_create_aggregate</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ref.sqlite.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>sqlite_current</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>