原文: http://zetcode.com/db/postgresqlphp/read/

    有几种函数可以从数据库读取数据。 数据可以作为枚举数组,对象或关联数组来获取。

    从数据库检索数据需要执行三个步骤。 首先,我们定义一个 SQL SELECT语句。 该语句通过pg_query()函数执行。 (在准备语句的情况下,我们将使用pg_execute()函数。)我们收到一个结果集对象。 使用结果集,我们使用pg_fetch_row()pg_fetch_assoc()pg_fetch_object()函数获取数据。

    1. <?php
    2. $host = "localhost";
    3. $user = "user12";
    4. $pass = "34klq*";
    5. $db = "testdb";
    6. $con = pg_connect("host=$host dbname=$db user=$user password=$pass")
    7. or die ("Could not connect to server\n");
    8. $query = "SELECT * FROM cars LIMIT 5";
    9. $rs = pg_query($con, $query) or die("Cannot execute query: $query\n");
    10. while ($row = pg_fetch_row($rs)) {
    11. echo "$row[0] $row[1] $row[2]\n";
    12. }
    13. pg_close($con);
    14. ?>

    我们从cars表中获得 5 辆汽车,并将它们打印到控制台。

    1. $query = "SELECT * FROM cars LIMIT 5";

    这是提取 5 行汽车的 SQL。

    1. $rs = pg_query($con, $query) or die("Cannot execute query: $query\n");

    使用pg_query()函数执行查询。 该函数返回结果集。

    1. while ($row = pg_fetch_row($rs)) {
    2. echo "$row[0] $row[1] $row[2]\n";
    3. }

    pg_fetch_row()函数返回一个字符串值数组。 我们可以使用数组索引符号来获取数组字段。 当没有更多的行时,该函数返回false,而while循环终止。

    1. $ php retrieve1.php
    2. 1 Audi 52642
    3. 2 Mercedes 57127
    4. 3 Skoda 9000
    5. 4 Volvo 29000
    6. 5 Bentley 350000

    示例输出。

    在第二个示例中,我们将使用pg_fetch_assoc()函数获取数据。

    1. <?php
    2. $host = "localhost";
    3. $user = "user12";
    4. $pass = "34klq*";
    5. $db = "testdb";
    6. $con = pg_connect("host=$host dbname=$db user=$user password=$pass")
    7. or die ("Could not connect to server\n");
    8. $query = "SELECT * FROM cars LIMIT 5";
    9. $rs = pg_query($con, $query) or die("Cannot execute query: $query\n");
    10. while ($row = pg_fetch_assoc($rs)) {
    11. echo $row['id'] . " " . $row['name'] . " " . $row['price'];
    12. echo "\n";
    13. }
    14. pg_close($con);
    15. ?>

    pg_fetch_assoc()函数获取一行作为关联数组。 关联数组的键是列名。

    1. while ($row = pg_fetch_assoc($rs)) {
    2. echo $row['id'] . " " . $row['name'] . " " . $row['price'];
    3. echo "\n";
    4. }

    idnameprice是返回的关联数组的键。

    在最后一个示例中,我们将使用pg_fetch_object()函数获取数据。 它返回一个对象,该对象的属性与获取的行的字段名称相对应。

    1. <?php
    2. $host = "localhost";
    3. $user = "user12";
    4. $pass = "34klq*";
    5. $db = "testdb";
    6. $con = pg_connect("host=$host dbname=$db user=$user password=$pass")
    7. or die("Could not connect to server\n");
    8. $query = "SELECT * FROM cars LIMIT 5";
    9. $rs = pg_query($con, $query) or die("Cannot execute query: $query\n");
    10. while ($ro = pg_fetch_object($rs)) {
    11. echo $ro->id . " ";
    12. echo $ro->name . " ";
    13. echo $ro->price . " ";
    14. echo "\n";
    15. }
    16. pg_close($con);
    17. ?>

    我们从cars表中选择五辆车。

    1. while ($ro = pg_fetch_object($rs)) {
    2. echo $ro->id . " ";
    3. echo $ro->name . " ";
    4. echo $ro->price . " ";
    5. echo "\n";
    6. }

    列名称是对象属性,其中包含值。

    我们已经使用pg_fetch_row()pg_fetch_assoc()pg_fetch_object()函数完成了数据读取。