Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
artem55555p
23 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
1

Как подключить postgresql

27.10.2016, 12:39. Просмотров 2131. Ответов 47
Метки нет (Все метки)

Здравствуйте. Имеется класс, где я подключил mysql:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Db
{
 
    /**
     * Устанавливает соединение с базой данных
     * @return \PDO <p>Объект класса PDO для работы с БД</p>
     */
    public static function getConnection()
    {
        // Получаем параметры подключения из файла
        $paramsPath = ROOT . '/config/db_params.php';
        $params = include($paramsPath);
 
        // Устанавливаем соединение
        $dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
        $db = new PDO($dsn, $params['user'], $params['password']);
 
        // Задаем кодировку
        $db->exec("set names utf8");
 
        return $db;
    }
 
}
и файл db_params:
PHP
1
2
3
4
5
6
7
8
9
<?php
 
// Массив с параметрами подключения к базе данных
return array(
    'host' => 'localhost',
    'dbname' => 'mvc_site',
    'user' => 'root',
    'password' => '',
);
вопрос, как мне подключить postgresql??
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2016, 12:39
Ответы с готовыми решениями:

Как правильно подключится к postgreSQL ?
Как подключится к postgreSQL? Нужно подключится к БД potgeSQL и результаты...

jpgraph. КАК ПОДКЛЮЧИТЬ?
как подключить jpgraph-1.27.1 к ПХП? Добавлено через 4 минуты &lt;?php //...

Как подключить mysql
У меня PHP Version 7.0.5 и apache2.4 - какую последовательность действий мне...

Как подключить sqlite
Друзья скажите как правильно установить модуль php sqlite У меня PHP Version...

Как подключить шаблон к php
Учусь самописные сайты делать, не могу понять как к index.php подклячить html...

47
artem55555p
23 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
27.10.2016, 18:33  [ТС] 41
понял, спасибо большое, вы очень помогли. ну и гемон с этим посгрексом.... капец. Mysql намного роще и понятнее...

Добавлено через 1 час 17 минут
Вопрос. есть метод регистрции:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    /**
     * Регистрация пользователя
     * @param string $name <p>Имя</p>
     * @param string $email <p>E-mail</p>
     * @param string $password <p>Пароль</p>
     * @return boolean <p>Результат выполнения метода</p>
     */
    public static function register($name, $email, $password)
    {
        // Соединение с БД
        $db = Db::getConnection();
 
        // Текст запроса к БД
        $sql = 'INSERT INTO user2 (name, email, password) '
            . 'VALUES (:name, :email, :password)';
 
        // Получение и возврат результатов. Используется подготовленный запрос
        $result = $db->prepare($sql);
        $result->bindParam(':name', $name, PDO::PARAM_STR);
        $result->bindParam(':email', $email, PDO::PARAM_STR);
        $result->bindParam(':password', $password, PDO::PARAM_STR);
        return $result->execute();
    }
когда была подключена mysql все работало, запись добавлялась, сейчас на postgres на добавляется, т.е. не работает регистрация. в чем проблема?
0
Para bellum
Эксперт PHP
4187 / 3115 / 1010
Регистрация: 06.01.2011
Сообщений: 9,091
27.10.2016, 18:54 42
Точно не скажу -- можно проверить эмпирически.
Замените временно это:
PHP
1
return $result->execute();
На
PHP
1
2
3
4
if(!$result->execute()){
    print_r($db->errorInfo());
    die;
}
И скажите, что выведет данный код.
0
artem55555p
23 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
27.10.2016, 19:14  [ТС] 43
Array ( [0] => 00000 [1] => 7 [2] => ОШИБКА: нулевое значение в колонке "id" нарушает ограничение NOT NULL DETAIL: Ошибочная строка содержит (null, sdsdsdsd ..., pavel@mail.ru ..., qwewqdsadsa, null). )
я понял в чем проблема. у меня в таблице id и я задал его как первичный ключ, у меня вопрос, как мне быть?

Добавлено через 25 секунд
т.к. при регистрации, id вводить не надо? a_i поставить?

Добавлено через 13 минут
с регистрацией реши вопрос. еще вопрос.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
abstract class AdminBase
{
 
    /**
     * Метод, который проверяет пользователя на то, является ли он администратором
     * @return boolean
     */
    public static function checkAdmin()
    {
        // Проверяем авторизирован ли пользователь. Если нет, он будет переадресован
        $userId = User::checkLogged();
 
        // Получаем информацию о текущем пользователе
        $user = User::getUserById($userId);
 
        // Если роль текущего пользователя "admin", пускаем его в админпанель
        if ($user['role'] == 'admin') {
            return true;
        }
        // Иначе завершаем работу с сообщением об закрытом доступе
        die('Access denied');
    }
 
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 /**
     * Возвращает пользователя с указанным id
     * @param integer $id <p>id пользователя</p>
     * @return array <p>Массив с информацией о пользователе</p>
     */
    public static function getUserById($id)
    {
        // Соединение с БД
        $db = Db::getConnection();
 
        // Текст запроса к БД
        $sql = 'SELECT * FROM user2 WHERE id = :id';
 
        // Получение и возврат результатов. Используется подготовленный запрос
        $result = $db->prepare($sql);
        $result->bindParam(':id', $id, PDO::PARAM_INT);
 
        // Указываем, что хотим получить данные в виде массива
        $result->setFetchMode(PDO::FETCH_ASSOC);
        $result->execute();
 
        return $result->fetch();
    }
тут если у пользователя role admin - он увидит страницу,у меня не работает, можете подсказать, как посмотреть ошибку?
0
Para bellum
Эксперт PHP
4187 / 3115 / 1010
Регистрация: 06.01.2011
Сообщений: 9,091
27.10.2016, 19:41 44
Просто распечатайте значение, содержащееся в $user['role']:
PHP
1
2
var_dump($user['role']); 
die;
И увидите, что в ней.
0
artem55555p
23 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
27.10.2016, 19:46  [ТС] 45
это в public static function checkAdmin() ??

Добавлено через 2 минуты
у меня пишет: string(5) "admin"
в чем проблема тогда?

Добавлено через 24 секунды
все, разобрался))

Добавлено через 12 секунд
стояло 255 символов, я поставил 5
0
artem55555p
23 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
28.10.2016, 21:47  [ТС] 46
Создать в базе данных таблицу «Log», в которой должна храниться информация обо всех действиях пользователя. А именно информация о том, какие значения полей были добавлены, удалены или изменены, с указанием даты изменения, старого значения, нового значения, таблицы и имени пользователя

не подскажите, как это можно реализовать?
0
Para bellum
Эксперт PHP
4187 / 3115 / 1010
Регистрация: 06.01.2011
Сообщений: 9,091
29.10.2016, 06:52 47
Не знаю даже. Если только trigger написать...
0
artem55555p
23 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
29.10.2016, 07:47  [ТС] 48
про триггер знаю, я думаю можерт еще как то можно?
0
29.10.2016, 07:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2016, 07:47

Как подключить форум к сайту?
Скачал я форум phpBB. Распаковал в localhost. В phpmyadmin добавил базу данных...

Как правильно подключить файл?
Доброго времени суток. У меня такая проблема случилась. Есть файл fal.php&lt;?php...

Как подключить оплату за товары по карте?
Вопрос, может, не по теме немного...но мне на сайт нужно прикрутить оплату за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru