Вопрос новичка о PostgreSQL. Я перевожу созданное мной приложение MySQL / PHP, размещенное на сервере Linux, в PostgreSQL / PHP в среде MacOSX Lion Server. Это мой первый опыт работы с Postgres. Первый запрос, который я тестирую, не работает, поскольку он ничего не возвращает (даже сообщение об ошибке, какой бы проверочный код я не добавил). Что я сделал не так? Я читал статьи в Интернете, в том числе документ на официальном сайте php, но все комментарии, личные методы и различия от версии к версии, как с Postgres, так и с PHP, приводят меня в замешательство, и я в конце концов не понимаю, что именно я должен написать мой запрос и fetch_array. Спасибо за любые предложения.
Вот мой код из исходного приложения MySQL:
// below is the "connexion.php" file
function connexion ()
{
$link=@mysql_connect ("localhost","username","pwd");
if ($link && mysql_select_db ("database"))
return ($link);
return (FALSE);
}
// below is the "index.php" file
require ("connexion.php");
connexion() or exit();
$reqcount = mysql_query ("SELECT * FROM people");
$result = mysql_num_rows($reqcount);
echo "Total : ".$result." people";
mysql_free_result ($reqcount);
mysql_query("set names 'utf8'");
$reqcat = mysql_query ("SELECT catname FROM categories ORDER BY catname");
while ($fieldcat = mysql_fetch_array($reqcat))
{
$name = $fieldcat[catname];
echo $name."<br>";
}
mysql_free_result ($reqcat);
mysql_close ();
А вот адаптация PostgreSQL:
// connexion.php
function connexion ()
{
$link=pg_connect("host=localhost port=5432 dbname=database user=username password=pwd connect_timeout=5 options='--client_encoding=UTF8'");
return ($link);
}
// index.php
require ("connexion.php");
$reqcount = pg_query ($link,"SELECT * FROM people");
$result = pg_num_rows($reqcount);
echo "Total : ".$result." people";
pg_free_result ($reqcount);
$reqcat = pg_query ($link,"SELECT catname FROM categories ORDER BY catname");
while ($fieldcat = pg_fetch_array($reqcat))
{
$name = $fieldcat[catname];
echo $name."<br>";
}
pg_free_result ($reqcat);
pg_close ();