代码之家  ›  专栏  ›  技术社区  ›  sam scoot1900

如何使用PHP从PostgreSQL获取数据

  •  3
  • sam scoot1900  · 技术社区  · 7 年前

    我无法在PHP中从PostgreSQL获取数据。每次运行查询时,它都返回NULL。

    我的查询:

    $psql = new psql('localhost','database','user','password');
    
    $psq = pg_query("SELECT * FROM students");
    $result = pg_fetch_row($psq);
    var_dump($result); 
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Mateusz Kleinert    7 年前

    看起来您的数据库连接有问题。尝试使用 pg_last_error() 看看发生了什么。以下是一些示例:

    <?php
        $dbhost = 'localhost';
        $dbname='database';
        $dbuser = 'user';
        $dbpass = 'password';
    
        $dbconn = pg_connect("host=$dbhost dbname=$dbname user=$dbuser password=$dbpass")
            or die('Could not connect: ' . pg_last_error());
    
        $query = 'SELECT * FROM students';
        $result = pg_query($query) or die('Error message: ' . pg_last_error());
    
        while ($row = pg_fetch_row($result)) {
            var_dump($row);
        }
    
        pg_free_result($result);
        pg_close($dbconn);
    ?>
    

    对于PDO:

    <?php
        try {
            $dbhost = 'localhost';
            $dbname='database';
            $dbuser = 'user';
            $dbpass = 'password';
    
            $connection = new PDO("pgsql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
    
            $sql = 'SELECT * FROM students';
    
            foreach ($connection->query($sql) as $row) {
                var_dump($row);
            }
    
            $connection = null;
        } catch (PDOException $e) {
            die("Error message: " . $e->getMessage());
        }
    ?>