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