【PostgreSQL】【PHP】连接方法

因为我学到了在PHP和PostgreSQL之间进行数据的增删改查处理,所以我将其记录在备忘录中。

由于PHP最初已经准备好了”PostgreSQL函数”,因此我们将使用它。

通过PHP连接到PostgreSQL数据库的方法有两种。

    1. 使用PHP的libpq库提供的PostgreSQL函数的方法

 

    使用PDO(PHP数据对象)的方法

决定使用哪种方法更多取决于服务器环境和程序员的裁量,而不是功能性比较。举个明显的例子,如果您有使用PDO操作其他数据库(如MySQL或SQLite)的代码经验,那么使用PDO来处理PostgreSQL可能会更顺畅。

如果您有使用其他编程语言(如Python或Ruby)编写操作代码的函数经验,那么使用libpq库的函数来编写应该更容易理解。

我已经参考了下面的文章来了解连接方法。

PostgreSQLデータベースへ接続

PostgreSQLへ接続

我想使用“使用PDO连接的方法”来连接这次。

连接步骤

1. 安装PostgreSQL 〜 创建数据库

由於這篇文章非常易懂,所以我會按照文章的指示進行操作。【PostgreSQL】在Mac上建立PostgreSQL資料庫環境!

我会按照文章所说的继续下去,直到最后将数据添加到表中为止。
对于我的情况,我已经创建了以下这样的表格。

表名:用户
字段:id,名字,姓氏
数据如下:

idfirstnamelastname1KaoriSaito2NaomiTanaka3KeiYamada
スクリーンショット 2022-06-27 12.59.10.png

2. 准备一个用于连接的PHP文件。

<?php
function convert_enc($str){
    $from_enc = 'EUC_JP';
    $to_enc = 'SJIS';

    return mb_convert_encoding($str, $to_enc, $from_enc);
}

$dsn = 'pgsql:dbname=DB名 host=localhost port=5432';
$user = 'ユーザー名';
$password = 'パスワード';

try{
    $dbh = new PDO($dsn, $user, $password);

    print('接続に成功しました。<br>');

    $sql = 'select * from users';
    foreach ($dbh->query($sql) as $row) {
        print(convert_enc($row['id']).'<br>');
        print(convert_enc($row['firstname']).'<br>');
        print(convert_enc($row['lastname']).'<br>');
    }
}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}


$dbh = null;

?>

在浏览器中启动内置服务器,并确认与数据库的连接是否成功。

php -S localhost:8000

打开localhost:8000/sql.php时……

スクリーンショット 2022-06-27 15.16.50.png

连接成功了!

广告
将在 10 秒后关闭
bannerAds