Как настроить связку PHP+postgresql?

Здравствуйте, ситуация такая проект работает с использованием MySQL, по заданию руководства необходимо осуществить миграцию на POSTGRESQL.
На сегодняшний день существует БД например на хосте 192.168.1.3 порт 3306 имя базы basa имя пользователя admin пароль 123
в таком случае у меня есть файл подключения к базе данных bd.php:
<?php
session_start();
mysql_connect ("192.168.1.3:3306", "admin", "123");
mysql_select_db ("basa");
mysql_query("SET NAMES utf8");
?>

Операции с данными 1.php:
<? php
include_once("bd.php"); // подключение к базе данных
$resultat = mysql_query("SELECT * FROM table1");
$array= mysql_fetch_array($resultat); // Получение данных из таблицы table1
$query = "INSERT INTO table2 (name, nik )
 VALUES ('pavel', 'user')";
                    $result = mysql_query($query) or die(mysql_error()); // запись данных в таблицу table2 
?>

Не хочу полностью переписывать код и менять структуру, как примерно тоже самое сделать на postgres(пусть баз называется basa2 порт 5432 остальные данные прежние).

P.S.: вчера впервые услышал что такая БД существует...
  • Вопрос задан
  • 6135 просмотров
Пригласить эксперта
Ответы на вопрос 1
DarkRaven
@DarkRaven
разработка программного обеспечения
Я бы вам порекомендовал посмотреть в сторону PDO. Всё же унифицированный API для подключения и взаимодействия с базами данных.

Убедитесь, что расширения для работы с postgres у вас подключены в php.ini.
Само подключение достаточно простое, как и последующая работа:

$userId = 20;
try {
    $db = new PDO("pgsql:dbname=basa;host=localhost", "admin", "123" );
    $sql = "SELECT * FROM public.users WHERE id = ?";
    $sqlQuery = $db->prepare($sql);
    $sqlQuery->execute([$userId]);
    
    while($result = $sqlQuery->fetch(PDO_FETCH_ASSOC)) 
    {
        echo "{$result['id']} / {$result['name']}<br />";      
    }

    $dbh = null;
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы