<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/pgsql.examples.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'pgsql.examples-queries.php',
    1 => 'Uso b&aacute;sico',
    2 => 'Uso b&aacute;sico',
  ),
  'up' => 
  array (
    0 => 'pgsql.examples.php',
    1 => 'Ejemplos',
  ),
  'prev' => 
  array (
    0 => 'pgsql.examples-basic.php',
    1 => 'Uso b&aacute;sico',
  ),
  'next' => 
  array (
    0 => 'ref.pgsql.php',
    1 => 'Funciones de PostgreSQL',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pgsql/examples.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="pgsql.examples-queries" class="section">
  <h2 class="title">Uso básico</h2>
  <p class="para">
   Estos ejemplos contienen funciones definidas por el usuario similares
   a las funciones anteriores de MySQL.

   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo de funciones PostgreSQL definidas por el usuario</strong></p>
    <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
</span><span style="color: #FF8000">// Esta función debería ser necesaria, ya que una conexión PostgreSQL se
// vincula a una base de datos.
</span><span style="color: #007700">function </span><span style="color: #0000BB">pg_list_dbs</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">)
{
    </span><span style="color: #0000BB">assert</span><span style="color: #007700">(</span><span style="color: #0000BB">is_resource</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">));
    </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #DD0000">'
SELECT
 d.datname as "Name",
 u.usename as "Owner",
 pg_encoding_to_char(d.encoding) as "Encoding"
FROM
 pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
'</span><span style="color: #007700">;
    return </span><span style="color: #0000BB">pg_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);
}

</span><span style="color: #FF8000">// Listar las tablas.
</span><span style="color: #007700">function </span><span style="color: #0000BB">pg_list_tables</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">)
{
    </span><span style="color: #0000BB">assert</span><span style="color: #007700">(</span><span style="color: #0000BB">is_resource</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">));
    </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #DD0000">"
SELECT
 c.relname as \"Name\",
 CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\",
  u.usename as \"Owner\"
FROM
 pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid
WHERE
 c.relkind IN ('r','v','S','')
 AND c.relname !~ '^pg_'
ORDER BY 1;
"</span><span style="color: #007700">;
    return </span><span style="color: #0000BB">pg_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);
}

</span><span style="color: #FF8000">// Ver también pg_meta_data(). Esto devuelve la definición de los campos como array.
</span><span style="color: #007700">function </span><span style="color: #0000BB">pg_list_fields</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #0000BB">$table</span><span style="color: #007700">)
{
    </span><span style="color: #0000BB">assert</span><span style="color: #007700">(</span><span style="color: #0000BB">is_resource</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">));
    </span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #DD0000">"
SELECT
 a.attname,
 format_type(a.atttypid, a.atttypmod),
 a.attnotnull,
 a.atthasdef,
 a.attnum
FROM
 pg_class c,
 pg_attribute a
WHERE
 c.relname = '"</span><span style="color: #007700">.</span><span style="color: #0000BB">$table</span><span style="color: #007700">.</span><span style="color: #DD0000">"'
 AND a.attnum &gt; 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
"</span><span style="color: #007700">;
    return </span><span style="color: #0000BB">pg_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</span><span style="color: #007700">, </span><span style="color: #0000BB">$query</span><span style="color: #007700">);
}
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

   </div>
  </p>
 </div><?php manual_footer($setup); ?>