Автор Тема: PHP  (Прочетена 4177 пъти)

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
PHP
« -: Jun 16, 2005, 22:26 »
Здравейте,
искам да попитам нещо. Някой писал ли е на PHP приложение работещо както с MySQL така и с PostgreSQL. На мене ми идват на ум "начини" които ще доведат до огромно повтаряне на код или до много бъгав код. Ако има желаещи нека да споделят опита си

Мерси предварително за отговорите  '<img'>
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

  • Гост
PHP
« Отговор #1 -: Jun 16, 2005, 23:06 »
Pear има модул за връзка с БазиДанни, трябва да ти свърши работа
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
PHP
« Отговор #2 -: Jun 17, 2005, 00:32 »
само идея:
кода на phpBB е съвместим и с двете - можеш да го разгледаш (не знам дали е само на ниво начална конфигурация съвместимостта)
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

gamehack

  • Напреднали
  • *****
  • Публикации: 244
    • Профил
    • WWW
PHP
« Отговор #3 -: Jun 17, 2005, 01:45 »
Дрънни ми на ICQ-то, имам няколко класчета и готова архитектура ако те интересуват  '<img'>
Активен

Simplicity all the way...

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
PHP
« Отговор #4 -: Jun 17, 2005, 10:10 »
Ако се използва database abstraction layer - примерно Pear DB - става. Естествено трябва да се внимава заявките да са съвместими. Случват се и бъгове естествено е "крушата" е малко голословна - повечето грешки от Postgre излизат като DB Error - Unknown Error, което си дразни.
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
PHP
« Отговор #5 -: Jun 17, 2005, 13:47 »
daf - не на всеки сървър може да си сложиш Pear. Идеята ми е... да пиша малки скриптове и да ги пускам под GPL.

VladSun - добра идея ще пробвам

gamehack - виж си ICQ

toxigen - почти всички заявки трябва да са еднакви. Нали УЖ и двете бази данни са стандартизирани. И поне често използваните са еднакви

П.П. страшни обяснения давам тея дни
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
PHP
« Отговор #6 -: Jun 17, 2005, 15:51 »
Цитат
Нали УЖ и двете бази данни са стандартизирани. И поне често използваните са еднакви


Много ми се иска да беше така, но уви...
Още при създаването на таблиците се виждат СЕРИОЗНИ различия във формата на заявките (CREATE ...), особено видимо е с типовете данни. Самите типове в общия случай са аналогични (при pg има повече), но естествено се декларират по различен начин. Експорт от mysqldump --compatible=pgsql дава дъмп, който влиза в постгре след часове редакция (поне при мен беше така - нека някой ме поправи ако греша). Обратното пък е съвсем зле.
Ако използваш съхранени процедури виждаш, че синтаксиса за описването им се различава отново значително.
Голям проблем за мен се оказаха auto_increment полетата.
Има и други, но по същество:

За малки скриптчета, който работят САМО с mysql или pgsql препоръчвам две схеми за базите (за първоначално създаване), собствен abstraction layer с имплементирани само нещата, които използваш - т.е. примерно mysql_query и pgsql_query да се избират спрямо вида на базата (предполагам това е "грозно" решение, но пък затова доста просто за изпълнение)  - това може да е един файл от 300 реда, който да върви заедно със скрипта.
Естествено по метода на пробата и грешката може да се тества кои заявки имат проблем с едната или другата база и съответно да се доизгладят за пълна съвместимост.

Незнам доколко бях ясен, но дано е било полезно (вече е 16 ч. и от сорс ми се наду главата).
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
PHP
« Отговор #7 -: Jun 17, 2005, 17:05 »
Дам... сега откривам и разлики за които не съм знаел. Малки са но съществени. Когато някой те насочи веднага започват да те бодът в очите '<img'> Аз ще почета още малко из документациите а някой ако има още нещо да добави - да заповяда '<img'>
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

  • Гост
PHP
« Отговор #8 -: Jun 17, 2005, 17:54 »
Цитат на: toxigen,Юни 17 2005,16:51
Цитат

Голям проблем за мен се оказаха auto_increment полетата.
Има и други, но по същество:


Какъв е проблема с auto_increment/serial?
Активен

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
PHP
« Отговор #9 -: Jun 18, 2005, 14:16 »
Теоретично не би трябвало да има проблем. Има проблем ако имаш дъмп от mysql - тогава тия полета не щат да влизат в постгре
Активен

  • Гост
PHP
« Отговор #10 -: Jun 18, 2005, 16:59 »
предполагам, че проблемът е при теб, защото няма логика да има такъв проблем, още повече, че postgresql-а няма auto_increment, а типът serial представлява integer с default-на стойност sequence със стъпка 1.
Активен

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
PHP
« Отговор #11 -: Jul 07, 2005, 21:42 »
Добре това е така. Но на мен ми се налага да конвертирам дъмп от mysql към pgsql. Ако се сещате някакъв начин да се направят съвместими моля кажете. Postgre ми вади грешки независимо, дали съм пуснал на mysqldump опцията --compatible=pgsql
mysqldump продължава да си слага неща като KEY, IF EXISTS, COLLATION etc.
Съответно pgsql се оплаква. Също така ако сте срещали свестен инструмент за администриране на pgsql - уеб базиран или multiplatform (все пак ми трябва в работата, а там освен сървърите всичко е опрозорчено) кажете.
Благодаря предварително за помощта.
Активен

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
PHP
« Отговор #12 -: Jul 14, 2005, 12:04 »
Цитат
Също така ако сте срещали свестен инструмент за администриране на pgsql - уеб базиран или multiplatform (все пак ми трябва в работата, а там освен сървърите всичко е опрозорчено) кажете.


pgAdmin III is a powerful administration and development platform for the PostgreSQL database, free for any use. The application is running under GNU/Linux, FreeBSD and Windows 2000/XP.
http://www.pgadmin.org/
Активен

10 години ябълкова диета стигат, стигат!

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
PHP
« Отговор #13 -: Jul 14, 2005, 12:20 »
Благодаря за линка.
Нещо по повод конвертирането да се сещате?
Активен

dunamis

  • Напреднали
  • *****
  • Публикации: 32
    • Профил
PHP
« Отговор #14 -: Jul 14, 2005, 13:06 »
Можеш да погледнеш и това:
ADODB
Активен