-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathexamples.xml
148 lines (135 loc) · 3.56 KB
/
examples.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: aa2e1accf0888a290a76b9193844d0d7b7bd40b8 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="pgsql.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<section xml:id="pgsql.examples-basic">
<title>Utilisation simple</title>
<para>
Ce simple exemple montre comment se connecter, exécuter une requête et
afficher les lignes résultantes et se déconnecter d'une base de données
PostgreSQL.
<example>
<title>Exemple général de l'extension PostgreSQL</title>
<programlisting role="php">
<![CDATA[
<?php
// Connexion, sélection de la base de données
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
or die('Connexion impossible : ' . pg_last_error());
// Exécution de la requête SQL
$query = 'SELECT * FROM authors';
$result = pg_query($dbconn, $query) or die('Échec de la requête : ' . pg_last_error());
// Affichage des résultats en HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
// Libère le résultat
pg_free_result($result);
// Ferme la connexion
pg_close($dbconn);
?>
]]>
</programlisting>
</example>
</para>
</section>
<section xml:id="pgsql.examples-queries">
<title>Utilisation simple</title>
<para>
Ces exemples contiennent des fonctions définies par l'utilisateur semblable
aux fonctions antérieures MySQL.
<example>
<title>Exemple de fonctions PostgreSQL définies par l'utilisateur</title>
<programlisting role="php">
<![CDATA[
<?php
// Cette fonction devrait être necessaire, car une connexion PostgreSQL se
// lie à une base de donnée.
function pg_list_dbs($db)
{
assert(is_resource($db));
$query = '
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;
';
return pg_query($db, $query);
}
// Listé les tbles.
function pg_list_tables($db)
{
assert(is_resource($db));
$query = "
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;
";
return pg_query($db, $query);
}
// Voir aussi pg_meta_data(). Ceci retourne la définition des champs en tant que tableau.
function pg_list_fields($db, $table)
{
assert(is_resource($db));
$query = "
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 = '".$table."'
AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
";
return pg_query($db, $query);
}
?>
]]>
</programlisting>
</example>
</para>
</section>
</chapter>
<!-- 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
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/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
-->