xref: /php-src/ext/pgsql/tests/03sync_query.phpt (revision beaf1e81)
1--TEST--
2PostgreSQL sync query
3--EXTENSIONS--
4pgsql
5--SKIPIF--
6<?php include("inc/skipif.inc"); ?>
7--FILE--
8<?php
9
10include('inc/config.inc');
11$table_name = "table_03sync_query";
12
13$db = pg_connect($conn_str);
14pg_query($db, "CREATE TABLE {$table_name} (num int, str text, bin bytea)");
15pg_query($db, "INSERT INTO {$table_name} DEFAULT VALUES");
16
17$result = pg_query($db, "SELECT * FROM ".$table_name.";");
18if (!($rows   = pg_num_rows($result)))
19{
20    echo "pg_num_row() error\n";
21}
22for ($i=0; $i < $rows; $i++)
23{
24    pg_fetch_array($result, $i, PGSQL_NUM);
25}
26for ($i=0; $i < $rows; $i++)
27{
28    pg_fetch_object($result);
29}
30for ($i=0; $i < $rows; $i++)
31{
32    pg_fetch_row($result, $i);
33}
34for ($i=0; $i < $rows; $i++)
35{
36    pg_fetch_result($result, $i, 0);
37}
38
39try {
40    pg_fetch_result($result, 0, -1);
41} catch (ValueError $e) {
42    echo $e->getMessage(), "\n";
43}
44try {
45    pg_fetch_result($result, 0, 3);
46} catch (ValueError $e) {
47    echo $e->getMessage(), "\n";
48}
49try {
50    pg_fetch_result($result, 0, "unknown");
51} catch (ValueError $e) {
52    echo $e->getMessage(), "\n";
53}
54try {
55    pg_fetch_all_columns($result, -1);
56} catch (ValueError $e) {
57    echo $e->getMessage(), "\n";
58}
59try {
60    pg_fetch_all_columns($result, 3);
61} catch (ValueError $e) {
62    echo $e->getMessage(), "\n";
63}
64
65pg_result_error($result);
66if (function_exists('pg_result_error_field')) {
67    pg_result_error_field($result, PGSQL_DIAG_SEVERITY);
68    pg_result_error_field($result, PGSQL_DIAG_SQLSTATE);
69    pg_result_error_field($result, PGSQL_DIAG_MESSAGE_PRIMARY);
70    pg_result_error_field($result, PGSQL_DIAG_MESSAGE_DETAIL);
71    pg_result_error_field($result, PGSQL_DIAG_MESSAGE_HINT);
72    pg_result_error_field($result, PGSQL_DIAG_STATEMENT_POSITION);
73    if (defined('PGSQL_DIAG_INTERNAL_POSITION'))
74    {
75        pg_result_error_field($result, PGSQL_DIAG_INTERNAL_POSITION);
76    }
77    if (defined('PGSQL_DIAG_INTERNAL_QUERY'))
78    {
79        pg_result_error_field($result, PGSQL_DIAG_INTERNAL_QUERY);
80    }
81    pg_result_error_field($result, PGSQL_DIAG_CONTEXT);
82    pg_result_error_field($result, PGSQL_DIAG_SOURCE_FILE);
83    pg_result_error_field($result, PGSQL_DIAG_SOURCE_LINE);
84    pg_result_error_field($result, PGSQL_DIAG_SOURCE_FUNCTION);
85}
86pg_num_rows(pg_query($db, "SELECT * FROM ".$table_name.";"));
87pg_num_fields(pg_query($db, "SELECT * FROM ".$table_name.";"));
88pg_field_name($result, 0);
89pg_field_num($result, "num");
90pg_field_size($result, 0);
91pg_field_type($result, 0);
92pg_field_prtlen($result, null, 0);
93pg_field_is_null($result, null, 0);
94
95try {
96    pg_field_is_null($result, null, -1);
97} catch (ValueError $e) {
98    echo $e->getMessage(), "\n";
99}
100try {
101    pg_field_is_null($result, null, 3);
102} catch (ValueError $e) {
103    echo $e->getMessage(), "\n";
104}
105try {
106    pg_field_is_null($result, null, "unknown");
107} catch (ValueError $e) {
108    echo $e->getMessage(), "\n";
109}
110try {
111    pg_field_name($result, -1);
112} catch (ValueError $e) {
113    echo $e->getMessage(), "\n";
114}
115try {
116    pg_field_name($result, 3);
117} catch (ValueError $e) {
118    echo $e->getMessage(), "\n";
119}
120try {
121    pg_field_table($result, -1);
122} catch (ValueError $e) {
123    echo $e->getMessage(), "\n";
124}
125try {
126    pg_field_table($result, 3);
127} catch (ValueError $e) {
128    echo $e->getMessage(), "\n";
129}
130
131$result = pg_query($db, "INSERT INTO ".$table_name." VALUES (9999, 'ABC');");
132pg_last_oid($result);
133var_dump(pg_fetch_all($result));
134
135pg_free_result($result);
136pg_close($db);
137
138echo "OK";
139?>
140--CLEAN--
141<?php
142include('inc/config.inc');
143$table_name = "table_03sync_query";
144
145$db = pg_connect($conn_str);
146pg_query($db, "DROP TABLE IF EXISTS {$table_name}");
147?>
148--EXPECT--
149Argument #3 must be greater than or equal to 0
150Argument #3 must be less than the number of fields for this result set
151Argument #3 must be a field name from this result set
152pg_fetch_all_columns(): Argument #2 ($field) must be greater than or equal to 0
153pg_fetch_all_columns(): Argument #2 ($field) must be less than the number of fields for this result set
154Argument #3 must be greater than or equal to 0
155Argument #3 must be less than the number of fields for this result set
156Argument #3 must be a field name from this result set
157pg_field_name(): Argument #2 ($field) must be greater than or equal to 0
158pg_field_name(): Argument #2 ($field) must be less than the number of fields for this result set
159pg_field_table(): Argument #2 ($field) must be greater than or equal to 0
160pg_field_table(): Argument #2 ($field) must be less than the number of fields for this result set
161array(0) {
162}
163OK
164