<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 用 PHP 獲取 PostgreSQL 元數據 > 原文: [http://zetcode.com/db/postgresqlphp/meta/](http://zetcode.com/db/postgresqlphp/meta/) 元數據是有關數據庫中數據的信息。 PostgreSQL 中的元數據包含有關表和列的信息,我們在其中存儲數據。 受 SQL 語句影響的行數是元數據。 結果集中返回的行數和列數也屬于元數據。 有一個實驗性函數`pg_meta_data()`,它以表的形式返回表名的表定義。 ## 列和行 如前所述,結果集中的列數和行數被視為元數據。 ```php <?php $host = "localhost"; $user = "user12"; $pass = "34klq*"; $db = "testdb"; $con = pg_connect("host=$host dbname=$db user=$user password=$pass") or die ("Could not connect to server\n"); $query = "SELECT Name, Price FROM Cars LIMIT 4"; $rs = pg_query($con, $query) or die (pg_last_error($con)); $num_rows = pg_num_rows($rs); $num_cols = pg_num_fields($rs); echo "There are $num_rows rows and $num_cols columns in the query\n"; pg_close($con); ?> ``` 在上面的示例中,我們獲取查詢返回的行數和列數。 ```php $query = "SELECT Name, Price FROM Cars LIMIT 4"; ``` 從 SQL 查詢中可以看到我們選擇了 2 列和 4 行。 該查詢也可以動態創建。 ```php $num_rows = pg_num_rows($rs); $num_cols = pg_num_fields($rs); ``` `pg_num_rows()`函數返回 PostgreSQL 結果資源中的行數。 `pg_num_rows()`函數返回 PostgreSQL 結果資源中的列數(字段)。 ```php $ php colsrows.php There are 4 rows and 2 columns in the query. ``` 示例輸出。 ## 列標題 接下來,我們將展示如何使用數據庫表中的數據打印列標題。 ```php <?php $host = "localhost"; $user = "user12"; $pass = "34klq*"; $db = "testdb"; $con = pg_connect("host=$host dbname=$db user=$user password=$pass") or die ("Could not connect to server\n"); $query = "SELECT id, name, price FROM cars LIMIT 5"; $rs = pg_query($con, $query) or die (pg_last_error($con)); $fname1 = pg_field_name($rs, 0); $fname2 = pg_field_name($rs, 1); $fname3 = pg_field_name($rs, 2); printf("%3s %-10s %8s\n", $fname1, $fname2, $fname3); while ($row = pg_fetch_row($rs)) { printf("%3s %-10s %8s\n", $row[0], $row[1], $row[2]); } pg_close($con); ?> ``` 在此程序中,我們從`cars`表中選擇 5 行,并帶有列名。 ```php $fname1 = pg_field_name($rs, 0); $fname2 = pg_field_name($rs, 1); $fname3 = pg_field_name($rs, 2); ``` `pg_field_name()`函數返回指定列號的列(字段)名稱。 ```php printf("%3s %-10s %8s\n", $fname1, $fname2, $fname3); ``` 我們打印列標題。 我們使用`printf`函數進行一些格式化。 ```php $ php column_headers.php id name price 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 ``` 該程序的輸出。 ## 受影響的行 在下面的示例中,我們將發現特定的 SQL 命令已進行了多少更改。 ```php <?php $host = "localhost"; $user = "user12"; $pass = "34klq*"; $db = "testdb"; $con = pg_connect("host=$host dbname=$db user=$user password=$pass") or die ("Could not connect to server\n"); $query = "DROP TABLE IF EXISTS friends"; pg_query($con, $query) or die("Cannot execute query: $query\n"); $query = "CREATE TABLE friends(id INT, name TEXT)"; pg_query($con, $query) or die("Cannot execute query: $query\n"); $query = "INSERT INTO friends VALUES (1, 'Jane'), (2, 'Thomas')" . ", (3, 'Beky'), (4, 'Robert'), (5, 'Lucy')"; $res = pg_query($con, $query) or die("Cannot execute query: $query\n"); $ar = pg_affected_rows($res); echo "The query has affected $ar rows\n"; $query = "DELETE FROM friends WHERE id IN (3, 4, 5)"; $res = pg_query($con, $query) or die("Cannot execute query: $query\n"); $ar = pg_affected_rows($res); echo "The query has affected $ar rows\n"; pg_close($con); ?> ``` 我們創建一個好友表。 在最后一個 SQL 命令中,我們刪除三行。 我們有一個`INSERT`和一個`DELETE`語句,我們可以對其調用`pg_affected_rows()`以獲取受影響的行數。 ```php $query = "INSERT INTO friends VALUES (1, 'Jane'), (2, 'Thomas')" . ", (3, 'Beky'), (4, 'Robert'), (5, 'Lucy')"; ``` 我們在`friends`表中插入五行。 ```php $ar = pg_affected_rows($res); echo "The query has affected $ar rows\n"; ``` `pg_affected_rows()`函數返回受最后一條 SQL 語句影響的行數。 ```php $ php affected_rows.php The query has affected 5 rows The query has affected 3 rows ``` `INSERT`語句創建了五行,`DELETE`語句刪除了三行。 ## 表元數據 有一個實驗`pg_meta_data()`。 它為數據庫表的每一列返回元數據。 ```php <?php $host = "localhost"; $user = "user12"; $pass = "34klq*"; $db = "testdb"; $con = pg_connect("host=$host dbname=$db user=$user password=$pass") or die ("Could not connect to server\n"); $ary = pg_meta_data($con, 'cars'); var_dump($ary); pg_close($con); ?> ``` 該示例打印有關`cars`表的表列的元數據。 ```php $ary = pg_meta_data($con, 'cars'); ``` `pg_meta_data()`返回汽車表的元數據信息。 它返回一個數組。 ```php var_dump($ary); ``` `var_dump()`函數轉儲有關變量的信息。 在我們的例子中,它是返回的元數據信息數組。 ```php $ php metadata.php array(3) { ["id"]=> array(6) { ["num"]=> int(1) ["type"]=> string(4) "int4" ["len"]=> int(4) ["not null"]=> bool(true) ... ``` 摘自示例輸出。 在 PostgreSQL PHP 教程的這一部分中,我們使用了數據庫元數據。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看