Как мне подключиться к базе данных PotgreSQL через PHP? - PullRequest
0 голосов
/ 03 февраля 2011

Как я могу соединиться с моей базой данных PostgreSQL через PHP? Я пытаюсь это

$PG_Con = pg_connect("host=127.0.0.1 port=5432 user=user password=pass");
pg_database("db");
$PG_Users = pg_query($PG_Con, "SELECT * FROM users_mfuser WHERE user_ptr_id='71'");
$user2 = pg_fetch_assoc($PG_Users);

Но, похоже, это не работает. Вот весь код, может кто-нибудь мне помочь:

    <?php
    include "include/functions.php";
    $id = (int) $_GET['id'];
    $catid = (int) $_GET['cat'];
    if ($catid == NULL) {
        echo "Променливата е празна !";
    } else {
        print functionCat("" . $catid . "");
        functionConnect("pozdrawi");
        $SQL_Song = mysql_query("SELECT * FROM songs WHERE id='$id'");
        $row = mysql_fetch_array($SQL_Song);
        $url = $row['link'];
        $number = explode(":", $url);
        $i = substr($number[2], 0, 2);
        $link1 = "http://media.vbox7.com/s/$i/$number[2].flv";

        if (@fopen("http://media.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media02.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media02.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media03.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media03.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media04.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media04.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media05.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media05.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media06.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media06.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media07.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media07.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media08.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media08.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media09.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media09.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media10.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media10.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media11.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media11.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media12.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media12.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media13.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media13.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media14.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media14.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media15.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media15.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media16.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media16.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media17.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media17.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media18.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media18.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media19.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media19.vbox7.com/s/$i/$number[2].flv";
        } elseif (@fopen("http://media20.vbox7.com/s/$i/$number[2].flv", "r")) {
            $adres = "http://media20.vbox7.com/s/$i/$number[2].flv";
        }
mysql_close();
        $PG_Con = pg_connect("host=127.0.0.1 port=5432 user=user password=pass");
        pg_database("db");
        $PG_Users = pg_query($PG_Con, "SELECT * FROM users_mfuser WHERE user_ptr_id='71'");
        $user2 = pg_fetch_assoc($PG_Users);

if ($user2['user_song_credits'] == 0) {
            print "<center>asd</center>";
        } elseif ($user2['user_song_credits'] > 0) {
    ?><br />
            <center><div id='mediaspace'>Трябва да имате инсталиран Flash Player за да слушате</div></center>
            <script type='text/javascript'>
                var so = new SWFObject('player.swf','mpl','350','20','9');
                so.addParam('allowfullscreen','true');
                so.addParam('allowscriptaccess','never');
                so.addParam('wmode','opaque');
                so.addVariable('backcolor','8454c6');
                so.addVariable('frontcolor','FFFFFF');
                so.addVariable('lightcolor','FFFFFF');
                so.addVariable('screencolor','0f0f0f');;
                so.addVariable('menu','over');
                so.addVariable('file','<?= $adres ?>&menu=false');
                so.write('mediaspace');
            </script><br />

<?php
pg_close($PG_Con);
functionConnect("pozdrawi");
         echo "Сега свири: <b>".$row['author']." - ".$row['name']."</b>";

        }
        $i = 0;
        $Play_Song = mysql_query("SELECT * FROM songs WHERE cat_id='$catid'");
        echo "<center>
              <a href='javascript: show()'>Playlist</a><br />
              <div class='playlist' align='left' style='display:none;'>";

        while ($play = mysql_fetch_array($Play_Song)) {
            $i = $i + 1;
            $song_cat = $play['cat_id'];
            $Play_Cat = mysql_query("SELECT * FROM songs_cat WHERE id='$song_cat'");
            $cat = mysql_fetch_array($Play_Cat);
            $category = $cat['cat_name'];
            echo "&nbsp;&nbsp;$i.<a href='song.php?cat=" . $catid . "&id=" . $play['id'] . "'>" . $play[author] . "-" . $play[name] . "</a><br />";
        }
        echo "</div>";
    }
?>

Ответы [ 3 ]

2 голосов
/ 03 февраля 2011

Проверьте страницу Postgres pg_connect: необходимо указать имя базы данных в строке подключения, и функция pg_database, похоже, вообще не существует.

0 голосов
/ 03 февраля 2011

Я бы предложил использовать библиотеку абстракций базы данных. Мне нравится ADOdb, но есть и другие. Это позволяет намного проще переносить код на mySQL или другую базу данных и скрывает некоторые сложности вызова pg_? функционирует напрямую.

Также попробуйте использовать пустую строку '' для хоста и порта. Поскольку вы подключаетесь к localhost, возможно, сервер принимает только соединения с сокетами Unix, а не соединения TCP.

Как заметил Фрэнк, ошибки нет, поэтому, возможно, ваше соединение работает, а оператор SQL неверен?

0 голосов
/ 03 февраля 2011

Включите отчеты об ошибках и покажите их:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest of your code
?>

Изменили ли вы php.ini расширение php_pgsql?И это расширение работает также?проверьте phpinfo (), чтобы быть уверенным.

Редактировать: Вы ничего не делаете с результатами PostgreSQL, это правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...