<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'pgsql.examples-queries.php',
    1 => 'Grundlegende Verwendung',
    2 => 'Grundlegende Verwendung',
  ),
  'up' => 
  array (
    0 => 'pgsql.examples.php',
    1 => 'Beispiele',
  ),
  'prev' => 
  array (
    0 => 'pgsql.examples-basic.php',
    1 => 'Grundlegende Nutzung',
  ),
  'next' => 
  array (
    0 => 'ref.pgsql.php',
    1 => 'PostgreSQL-Funktionen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    '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">Grundlegende Verwendung</h2>
  <p class="para">
   Diese Beispiele enthalten benutzerdefinierte Funktion, ähnlich veralteten
   MySQL-Funktionen.

   <div class="example" id="example-1">
    <p><strong>Beispiel #1 benutzerdefinierte PostgreSQL Funktionen Beispiel</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">// Diese Funktion sollte benötigt werden, da PostgreSQL-Verbindung die Datenbank anbinden.
</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">// Tabellen auflisten.
</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">// Siehe auch pg_meta_data(). Felddefinitionen werden als Array zurückgegeben.
</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); ?>