English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
la dernière version de PHP 5.3. x L'extension PostgreSQL est activée par défaut. Vous pouvez l'utiliser en compilant -- without-pgsql pour le désactiver. Vous pouvez toujours utiliser la commande yum pour installer PHP-Interface PostgreSQL
yum install php-pgsql
Avant d'utiliser l'interface PHP PostgreSQL, trouvez le fichier pg_hba.conf dans le répertoire d'installation de PostgreSQL et ajoutez la ligne suivante
# IPv4 connexions locales : host all all 127.0.0.1/32 md5
Si le serveur postgres n'est pas en cours d'exécution, vous pouvez utiliser la commande suivante pour le démarrer/Redémarrage du serveur postgres-
[root@host]# service postgresql restart Arrêt du service postgresql : [ OK ] Démarrage du service postgresql : [...] [ OK ]
Les utilisateurs Windows doivent activer php_pgsql.dll pour utiliser cette extension. Ce DLL est inclus dans PHP5.3version pour Windows après .x
Pour des instructions d'installation détaillées, veuillez consulter notreTutoriels PHPet son site officiel.
Voici quelques routines PHP importantes qui peuvent répondre à vos besoins pour utiliser la base de données PostgreSQL dans votre programme PHP. Si vous cherchez une application plus complexe, vous pouvez consulter la documentation officielle PHP.
N° | API & Description |
---|---|
1 | resource pg_connect ( string $connection_string [, int $connect_type ] ) Cela ouvrira une connexion à la base de données PostgreSQL spécifiée par connection_string. Si PGSQL_CONNECT_FORCE_NEW est passé en tant que connect_type, une nouvelle connexion sera créée lors du deuxième appel à pg_connect(), même si la connection_string est identique à une connexion existante. |
2 | bool pg_connection_reset ( resource $connection ) Cette routine réinitialise la connexion. Très utile pour la récupération des erreurs. Retourne TRUE avec succès, FALSE en cas d'échec. |
3 | int pg_connection_status ( resource $connection ) Retourne l'état de la connexion spécifiée. Retourne PGSQL_CONNECTION_OK ou PGSQL_CONNECTION_BAD. |
4 | string pg_dbname ([ resource $connection ] ) Retourne le nom de la base de données de la ressource de connexion PostgreSQL donnée. |
5 | resource pg_prepare ([ resource $connection ], string $stmtname, string $query ) De cette manière, soumet une requête pour créer une requête préparée avec quelque chose donné et attendre sa fin. |
6 | resource pg_execute ([ resource $connection ], string $stmtname, array $params ) 此例程发送一个请求执行一份事先准备好的声明中与给定参数,等待结果。 |
7 | resource pg_query ([ resource $connection ], string $query ) 在指定的数据库连接上执行查询。 |
8 | array pg_fetch_row ( resource $result [, int $row ] ) 从与指定的结果资源关联的结果中获取一行数据。 |
9 | array pg_fetch_all ( resource $result ) 返回一个数组,该数组包含结果资源中的所有行(记录)。 |
10 | int pg_affected_rows ( resource $result ) 返回受 INSERT、UPDATE 和 DELETE 查询影响的行数。 |
11 | int pg_num_rows ( resource $result ) 返回 PostgreSQL 结果资源中的行数,例如 SELECT 语句返回的行数。 |
12 | bool pg_close ([ resource $connection ] ) 关闭与给定连接资源关联的 PostgreSQL 数据库的非持久连接。 |
13 | string pg_last_error ([ resource $connection ] ) 返回给定连接的最后一条错误消息。 |
14 | string pg_escape_literal ([ resource $connection ], string $data ) 转义一个文本以插入到文本字段中。 |
15 | string pg_escape_string ([ resource $connection ], string $data ) 转义用于查询数据库的字符串。 |
下面的 PHP 代码演示如何连接到本地计算机上的现有数据库,并最终返回数据库连接对象。
<?php $host = "host =" 127.0.0.1"; $port = "port =" 5432"; $dbname = "dbname = testdb"; $credentials = "user = postgres password=pass"123"; $db = pg_connect("$host $port $dbname $credentials" ); if(!$db) { echo "Erreur : Impossible d'ouvrir la base de données\n"; } else { echo "Base de données ouverte avec succès\n"; } ?>
现在,让我们运行上面给定的程序来打开我们的数据库 testdb: 如果数据库被成功打开,那么它将给出以下消息-
Base de données ouverte avec succès
以下PHP程序将用于在先前创建的数据库中创建表
<?php $host = "host =" 127.0.0.1"; $port = "port =" 5432"; $dbname = "dbname = testdb"; $credentials = "user = postgres password=pass"123"; $db = pg_connect("$host $port $dbname $credentials" ); if(!$db) { echo "Erreur : Impossible d'ouvrir la base de données\n"; } else { echo "Base de données ouverte avec succès\n"; } $sql =<<<EOF CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL); EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); } else { echo "Table créée avec succès\n"; } pg_close($db); ?>
Lorsque le programme ci-dessus est exécuté, il crée la table COMPANY dans testdb et affiche le message suivant-
Base de données ouverte avec succès Table créée avec succès
Le programme PHP suivant démontre comment dans l'exemple précédent-Où créer des enregistrements dans la table COMPANY créée
<?php $host = "host=127.0.0.1"; $port = "port=5432"; $dbname = "dbname = testdb"; $credentials = "user = postgres password=pass"123"; $db = pg_connect("$host $port $dbname $credentials" ); if(!$db) { echo "Erreur : Impossible d'ouvrir la base de données\n"; } else { echo "Base de données ouverte avec succès\n"; } $sql =<<<EOF INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); } else { echo "Enregistrements créés avec succès\n"; } pg_close($db); ?>
Lorsque le programme ci-dessus est exécuté, il crée les enregistrements spécifiés dans la table COMPANY et affiche les deux lignes suivantes
Base de données ouverte avec succès Enregistrements créés avec succès
Le programme PHP suivant montre comment extraire les enregistrements de l'exemple précédent-Où extraire et afficher les enregistrements de la table COMPANY créée
<?php $host = "host =" 127.0.0.1"; $port = "port =" 5432"; $dbname = "dbname = testdb"; $credentials = "user = postgres password=pass"123"; $db = pg_connect("$host $port $dbname $credentials" ); if(!$db) { echo "Erreur : Impossible d'ouvrir la base de données\n"; } else { echo "Base de données ouverte avec succès\n"; } $sql =<<<EOF SELECT * from COMPANY; EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); exit; } while($row = pg_fetch_row($ret)) { echo "ID = " . $row[0] . "\n"; echo "NAME = " . $row[1] "\n"; echo "ADDRESS = " . $row[2] "\n"; echo "SALARY = " . $row[4] "\n\n"; } echo "Opération effectuée avec succès\n"; pg_close($db); ?>
Lorsque le programme ci-dessus est exécuté, il génère les résultats suivants. Veuillez noter que les champs seront retournés dans l'ordre dans lequel ils ont été créés lors de la création de la table.
Base de données ouverte avec succès ID = 1 NAME = Paul ADDRESS = California SALARY = 20000 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 Opération effectuée avec succès
Le code PHP suivant montre comment utiliser l'instruction UPDATE pour mettre à jour n'importe quel enregistrement, puis extraire et afficher les enregistrements mis à jour de notre table COMPANY
<?php $host = "host=127.0.0.1"; $port = "port=5432"; $dbname = "dbname = testdb"; $credentials = "user = postgres password=pass"123"; $db = pg_connect("$host $port $dbname $credentials" ); if(!$db) { echo "Erreur : Impossible d'ouvrir la base de données\n"; } else { echo "Base de données ouverte avec succès\n"; } $sql =<<<EOF Mettre à jour COMPANY set SALARY= 25000.00 où ID=1; EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); exit; } else { echo "Enregistrement mis à jour avec succès\n"; } $sql =<<<EOF SELECT * from COMPANY; EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); exit; } while($row = pg_fetch_row($ret)) { echo "ID = " . $row[0] . "\n"; echo "NAME = " . $row[1] "\n"; echo "ADDRESS = " . $row[2] "\n"; echo "SALARY = " . $row[4] "\n\n"; } echo "Opération effectuée avec succès\n"; pg_close($db); ?>
Lorsque le programme ci-dessus est exécuté, les résultats suivants sont générés
Base de données ouverte avec succès Enregistrement mis à jour avec succès ID = 2 NAME = Allen ADDRESS = 25 SALARY = 15000 ID = 3 NAME = Teddy ADDRESS = 23 SALARY = 20000 ID = 4 NAME = Mark ADDRESS = 25 SALARY = 65000 ID = 1 NAME = Paul ADDRESS = 32 SALARY = 25000 Opération effectuée avec succès
Le code PHP suivant montre comment utiliser l'instruction DELETE pour supprimer n'importe quel enregistrement, puis extraire et afficher les enregistrements de la table COMPANY-Récupérer et afficher les enregistrements restants
<?php $host = "host =" 127.0.0.1"; $port = "port =" 5432"; $dbname = "dbname = testdb"; $credentials = "user = postgres password=pass"123"; $db = pg_connect("$host $port $dbname $credentials" ); if(!$db) { echo "Erreur : Impossible d'ouvrir la base de données\n"; } else { echo "Base de données ouverte avec succès\n"; } $sql =<<<EOF DELETE from COMPANY where ID=2; EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); exit; } else { echo "Enregistrement supprimé avec succès\n"; } $sql =<<<EOF SELECT * from COMPANY; EOF; $ret = pg_query($db, $sql); if(!$ret) { echo pg_last_error($db); exit; } while($row = pg_fetch_row($ret)) { echo "ID = " . $row[0] . "\n"; echo "NAME = " . $row[1] "\n"; echo "ADDRESS = " . $row[2] "\n"; echo "SALARY = " . $row[4] "\n\n"; } echo "Opération effectuée avec succès\n"; pg_close($db); ?>
Lorsque le programme ci-dessus est exécuté, les résultats suivants sont générés
Base de données ouverte avec succès Enregistrement supprimé avec succès ID = 3 NAME = Teddy ADDRESS = 23 SALARY = 20000 ID = 4 NAME = Mark ADDRESS = 25 SALARY = 65000 ID = 1 NAME = Paul ADDRESS = 32 SALARY = 25000 Opération effectuée avec succès