решил попробовать написать layer для совместимости с другими базами данных путем перевода mysql команд для других баз данных посмотрел имеющиеся проэкты, в общем не впечатлило что-то доставлять, и не факт что быстро работать будет. решил сделать своё. сначала все шло отлично, соединения с 2 типами баз налаживались, как надо получилось сэмулировать несколько простых команд , в т.ч. SELECT DATABASE . которая в postgre вроде как не поддерживается. а на самых обычных запросах что то непонятное творится нельзя даже CREATE TABLE ili CREATE DATABASE.... да даже сущ. сист. таблицы не посмотреть SELECT * FROM `sequences`; пишет какой то бред в неизвестной кодировке Warning: pg_query() [function.pg-query]: Query failed: ERROR: отноС?ение "sequences" РЅРµ существует in /media/D/Work/KERNEL/dj/site/dbscore.lib on line 790 посмотрел с utf-8 - там бред какой то и правда ERROR: отношение "sequences" не существует на create или drop операции тоже ругается... типа синтаксис неверный. хотя я 100500% уверен что он был отправлен правильно, специально с манами сверялся, он ничем не отличается от Mysql-ного... вот собственно программа. http://eternity.chg.su/dbs/filemgr.php? ... c22dcd392c PS Ubuntu 9.04 64 bit (amd) PPS задолбался этот постгре ручками из консоли запускать я думал отсутствие автозапуска установленных сервисов осталось в прошлом веке. есть в принципе и неотлаженные старые баги... как выяснить в какой кодировке выдает данные mysql и сменить ее например... т.к. бэкапы работают только до тех пор пока там кто нибудь не напишет что то кириллицей, потом все ???????? ??????? будет. вот немного кода, который не открыт в программе. Код (Text): function dbs_query ($cmd,$connect,$dbtype) { if ($dbtype=="") echo ">>fixme>>dbs_query - Dbtype not set.<br>"; if (($dbtype=="pg")AND($cmd=="SHOW DATABASES")) $cmd="SELECT datname FROM pg_database"; .... function dbs_fetch_row ($a,$dbtype) { //changed all if ($dbtype=="pg") return pg_fetch_row ($a); .... function dbs_selectdb ($dbselected,$connect,$dbtype){ if ($dbtype=="pg") { global $pgconn; // не фонтан конечно, но это работает :) echo "pgconn=$pgconn <br>"; $result=pg_connect ($pgconn.' dbname='.$dbselected);
Вполне известная кодировка utf-8 Я вообще никакой линуксоид, но разве прописать его в init.d не работает? http://www.google.com.ua/search?q=смена+кодировки+mysql
я вообще не понимаю честно как могут не выполняться любые абсолютно запросы... кроме эмулироемых SHOW TABLES и SHOW DATABASE я даже пробовал маленькими буквами писать запросы, или искажать синтаксис намеренно... у меня за все это веселье отвечает w.php . нифига не понятно. просто как бы веб по дефолту с 1251 работает ... ну читать сообщения мне это не мешает. если pg знает что апач+php будут отдавать 1251 зачем он пишет свои pscpscpscp (или ему еще это "сказать" надо?, типа SET NAMES) про смену кодировки я уже нашел... если с внедренрением будет не так чтото отделю тему сейчас это неважно. да будет работать, возмущает тот факт что программа поставилась, и не прописалась mysql да и все остальное автоматически вроде как подразумевали что их будут использовать а постгре видимо знает что его будут так это изредка запускать
Are you sure?)))))) http://www.postgresql.org/docs/8.4/static/sql.html В PostgreSQL в данном случае нельзя использовать кавычки. mysql: [sql]SELECT `id`, `date`, `table`, `desc` FROM `this_table`[/sql] postgres: [sql]SELECT id, date, table, desc FROM this_table[/sql]
И не поможет. Ибо представление sequnces(представление, а не сист. таблица, ога) не включено в путь просмотра по умолчанию и к нему нужно обращатся так: [sql] SELECT * FROM information_schema.sequences; [/sql] Если же хочется работать с таблицами, а не представлениями то можно так(хотя ИМХО много лишних букв и плохо читаемо): [sql] SELECT * FROM pg_class WHERE relkind='S'; [/sql] Для общего развития: http://www.postgresql.org/docs/current/ ... HEMAS-PATH http://www.postgresql.org/docs/current/ ... class.html http://www.postgresql.org/docs/8.4/inte ... ences.html P.S. И да ИМХО PostgreSQL позитивная вещь