PHP编程
Completion requirements
PostgreSQL 与 PHP 数据对象
PostgreSQL 是另一种与 PHP 兼容的流行数据库。如果你已经熟悉如何在 PHP 中使用 MySQL,那么下表应该能帮助你更容易地将代码转换为 PostgreSQL。
函数对比
-
连接
mysql_connect()
需要三个参数(服务器、用户名、密码),而pg_connect()
只需要一个连接字符串参数。- MySQL 示例:
$db = mysql_connect('localhost', 'mysql_user', 'mysql_pass');
- PostgreSQL 示例:
$db = pg_connect('host=localhost user=pg_user password=pg_pass dbname=my_database');
-
数据库选择
- 在 MySQL 中,你需要单独指定要连接的数据库名称,而在 PostgreSQL 中,数据库名称是包含在
pg_connect()
的连接字符串中的。
- 在 MySQL 中,你需要单独指定要连接的数据库名称,而在 PostgreSQL 中,数据库名称是包含在
-
查询
mysql_query()
和pg_query()
的行为相同。- MySQL 示例:
$grab_people = mysql_query("SELECT * FROM people WHERE id_num = 3761832");
- PostgreSQL 示例:
$grab_people = pg_query("SELECT * FROM people WHERE id_num = 3761832");
-
获取关联结果
mysql_fetch_assoc()
和pg_fetch_assoc()
的行为相同。- MySQL 示例:
$person = mysql_fetch_assoc($grab_people);
- PostgreSQL 示例:
$person = pg_fetch_assoc($grab_people);
-
获取错误
- MySQL 使用
mysql_error()
,而 PostgreSQL 使用pg_last_error()
。 - MySQL 示例:
$error = mysql_error();
- PostgreSQL 示例:
$error = pg_last_error();
- MySQL 使用
-
关闭数据库连接
mysql_close()
和pg_close()
的行为相同。- MySQL 示例:
mysql_close($db);
- PostgreSQL 示例:
pg_close($db);
-
释放结果
mysql_free_result()
和pg_free_result()
的行为相同。- MySQL 示例:
mysql_free_result($grab_people);
- PostgreSQL 示例:
pg_free_result($grab_people);
完整 MySQL 示例
$db = mysql_connect('localhost', 'mysql_user', 'mysql_pass');
$grab_people = mysql_query("SELECT * FROM people WHERE id_num = 3761832");
$person = mysql_fetch_assoc($grab_people);
print_r($person);
$error = mysql_error();
if ($error != "") { print $error; }
mysql_free_result($grab_people);
mysql_close($db);
完整 PostgreSQL 示例
$db = pg_connect('host=localhost user=pg_user password=pg_pass dbname=my_database');
$grab_people = pg_query("SELECT * FROM people WHERE id_num = 3761832");
$person = pg_fetch_assoc($grab_people);
print_r($person);
print pg_last_error();
pg_free_result($grab_people);
pg_close($db);
进一步信息
Last modified: Friday, 10 January 2025, 12:35 AM