Скрытый запрос mysql в postgresql - PullRequest
0 голосов
/ 25 июля 2011

У меня есть пример, который отлично работает в MySQL, но когда я конвертирую в Postgresql не работает.

Mysql код: (index.php):

<?php 
  require('includes/connection.php'); 
  include('func.php');
?>
<html>
<head>
</head>

<body>
<p>
<form action="" method="post">

    <select name="drop_1" id="drop_1">

      <option value="" selected="selected" disabled="disabled">Select a Category</option>

      <?php getTierOne(); ?>

    </select> 

</form>

</body>
</html>

Mysql код (func.php):

function getTierOne()
{       

        $result = mysql_query("SELECT DISTINCT tier_one FROM three_drops") 
or die(mysql_error());

  while($tier = mysql_fetch_array( $result )) 

    {
       echo '<option value="'.$tier['tier_one'].'">'.$tier['tier_one'].'</option>';
    }
}

POstgreSql Код: (index.php):

<?php 
  require('includes/connection.php'); 
  include('func.php');
?>
<html>
<head>
</head>

<body>
<p>
<form action="" method="post">

    <select name="drop_1" id="drop_1">

      <option value="" selected="selected" disabled="disabled">Select a Category</option>

      <?php getTierOne(); ?>

    </select> 

</form>

</body>
</html>

Код PostgreSql (func.php):

function getTierOne()
{       

        $sth = $dbh->query("SELECT DISTINCT tier_one FROM three_drops");

      while($tier = $sth->fetch()) 

        {
           echo '<option value="'.$tier['tier_one'].'">'.$tier['tier_one'].'</option>';
        }
}

Соединения (Postgresql):

require("constants.php");

    $dbh = new PDO('pgsql:host=' . DB_SERVER . ';dbname=' . DB_NAME, DB_USER, DB_PASS,
    array (PDO::ATTR_PERSISTENT => true ));
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

Соединение работает, но я получаюошибка: вызов функции-члена query () для необъекта.

1 Ответ

1 голос
/ 25 июля 2011

Попробуйте определить глобальный $ dbh.

connection.php:

require("constants.php");
global $dbh;

func.php:

function getTierOne()
{
  global $dbh;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...