【PostgreSQL】【PHP】连接方法
因为我学到了在PHP和PostgreSQL之间进行数据的增删改查处理,所以我将其记录在备忘录中。
由于PHP最初已经准备好了”PostgreSQL函数”,因此我们将使用它。
通过PHP连接到PostgreSQL数据库的方法有两种。
-
- 使用PHP的libpq库提供的PostgreSQL函数的方法
- 使用PDO(PHP数据对象)的方法
决定使用哪种方法更多取决于服务器环境和程序员的裁量,而不是功能性比较。举个明显的例子,如果您有使用PDO操作其他数据库(如MySQL或SQLite)的代码经验,那么使用PDO来处理PostgreSQL可能会更顺畅。
如果您有使用其他编程语言(如Python或Ruby)编写操作代码的函数经验,那么使用libpq库的函数来编写应该更容易理解。
我已经参考了下面的文章来了解连接方法。
PostgreSQLデータベースへ接続
PostgreSQLへ接続
我想使用“使用PDO连接的方法”来连接这次。
连接步骤
1. 安装PostgreSQL 〜 创建数据库
由於這篇文章非常易懂,所以我會按照文章的指示進行操作。【PostgreSQL】在Mac上建立PostgreSQL資料庫環境!
我会按照文章所说的继续下去,直到最后将数据添加到表中为止。
对于我的情况,我已经创建了以下这样的表格。
表名:用户
字段:id,名字,姓氏
数据如下:
idfirstnamelastname1KaoriSaito2NaomiTanaka3KeiYamada
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时……
连接成功了!