Wahoo! Ik deed het! Het laatste deel van een wp-DB.PHP voor Interbase/Firebird
Ik wist 9 jaar van ervaring IB/FB in handig zou komen.
wp-db is de minilaag van de gegevensbestandabstractie voor WordPress. Het staat u toe om WordPress op divers gegevensbestand in werking te stellen. Op dit ogenblik is MySQL vrij veel het, maar sommige mensen hebben een versie PostgreSQL eveneens gedaan.Â
Goed, wilde ik het met een Interbase db voor de blog omzetting verbinden .TEXT ik heb gedaan. Ik ga geen WordPress van Interbase weg in werking stellen nog, maar het vereenvoudigde de invoer voor me in gebruiks wp-OB voor mijn verbinding van de gegevensbestandinvoer.
Het is interessant om op te merken dat ik aan het punt ben gekomen waar de andere redacteurs die ik voor PHP code net heb gebruikt net anymore niet voelen. Delphi voor PHP voelt enkel beter nu voor het uitgeven. Ik deed geen het visuele ontwerpen daarin, maar het was nog een aardige snelle redacteur met de extra hulp van wenken en parameters. Misschien als ik Zend had, zou ik met dat voor niet visueel materiaal, als ik aan het werd gebruikt, ik het weet niet plakken. Ik heb het niet. Ik probeerde het eens en vond het te voor mijn behoeften omvangrijk. D4PHP met alle ontwerp gesloten voelt de dozen, nog licht en heeft een snelle open tijd.
In elk geval, was het grootste deel van de omzetting vrij gemakkelijk. Ik moest enkel ibase_ php substitueren verzoek mysql_ vraag. Ik moest een kleine schoonmaakbeurt voor behandeling van lege koorden en citaten en sommige gereserveerde woorden IB zoals type, rol, wachtwoord, en enz. toevoegen. Maar het werkelijk probleem was dat WordPress zich zwaar op de eigenschap baseert InsertID die vele gegevensbestanden hebben. Het keert de laatste waarde van het autoincgebied in terug de lijst die door het laatste tussenvoegselbevel van verwijzingen wordt voorzien. IB/FB heeft geen equivelent. PHP documentatie wees niet op om het even welke oplossing werd verstrekt. En alle lagen van gegevensbestandabstration steunen ook niet het niet daar.
Zo, heb ik het werk rond gedaan. Het is misschien daar geen 100% nauwkeurig voor alle gegevensbestandenconfiguraties, maar het zou voor WordPress en .TEXT moeten werken.Â
Zie, moest de truc de primaire sleutel voor de lijst vinden u aan werkt. Zo, eerste moest ik vinden welke tabel 1 werkte. Ik had de SQL verklaring van het TUSSENVOEGSEL, zodat alle moest ik doen was vondst de lijstnaam na de woorden „TUSSENVOEGSEL IN „. Boete. Er is een bos van manieren om dat te doen.
Daarna, bewapend met de lijstnaam, moest ik de primaire sleutel vinden. Hoe doe ik dat met enkel de bevelen beschikbaar aan PHP? Dat was het netelige deel.Â
Gelukkig, is IB/FB een relationele gegevensbank. Dat in korte middelen de lijsten zijn allen opgeslagen in stukken en brokken door het gegevensbestand dien en dan samen terug verbonden volgens de structuurinformatie die in „verborgen“ lijsten wordt opgeslagen in.
Lang en kort van het is dat deze verklaring u zal geven wat nodig is:
-
SELECTEER RDB$RELATION_CONSTRAINTS.RDB$RELATION_NAME, RDB$INDEX_SEGMENTS.RDB$FIELD_NAME, RDB$INDEX_SEGMENTS.RDB$FIELD_POSITION
-
VAN RDB$RELATION_CONSTRAINTS, RDB$INDEX_SEGMENTS
-
WAAR
-
RDB$RELATION_CONSTRAINTS.RDB$CONSTRAINT_TYPE = `PRIMAIRE KEY EN
-
RDB$INDEX_SEGMENTS.RDB$INDEX_NAME=RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME
-
ORDE DOOR RDB$RELATION_CONSTRAINTS.RDB$RELATION_NAME, RDB$INDEX_SEGMENTS.RDB$FIELD_POSITION
In WordPress en .TEXT was elk gebied AutoInc ik bekeek het eerste gebied in de lijst. Zo, nu bewapend met de lijstnaam, en autoinc gebied, is het een eenvoudige vraag om de hoogste waarde te krijgen, die het meest recente tussenvoegsel zou moeten zijn tenzij er één of ander soort corruptie zijn geweest.
Zodat enkel uitgezochte Maximum (fieldname) van tablenameverklaring is en ik de waarde terugkeer die ik op gebied één heb gevonden die (behandelt een leeg natuurlijk geplaatst resultaat).Â
 Hey - het is niet mooi, maar het zou 100% van de tijd voor mijn gebruik moeten werken. Als het, zal ik het aan ADOdb voorleggen en zal zien wat zij denken. Aangezien ADOdb een kerndeel van Delphi voor PHP project is, zou ik mijn snuifje van code inbegrepen kunnen krijgen! Eigenlijk, hoop ik om tot VCL voor PHP long before dan bij te dragen.
 O.K., hebben de ogen van iedereen verglaasd over maar het is nog vrij koele eerlijk!
















Brian,
1. Kunt u over deze verklaring opnieuw gaan? „Zodat enkel uitgezochte Maximum (fieldname) van tablenameverklaring is en ik de waarde terugkeer die ik op gebied één die (behandelt een leeg natuurlijk geplaatst resultaat) heb gevonden.“ Ik ben niet helemaal zeker ik u hier volg.
2. Zijn er is manier om de GENERATOR voor specifieke primaire zeer belangrijk (en lijst te vinden) en toen gebruik „UITGEZOCHTE GEN_ID (naam, toename) VAN RDB$DATABASE“? Ik geloof dat dit de aangewezen manier is om een „autoincrement“ gebied in InterBase en Firebird, als app te halen.
BTW, dacht ik dat deze verbinding op de plaats van Lorenzo Alberton => http://www.alberton.info/firebird_sql_meta_info.html interesseerde
Tom
Commentaar tegen Tom Wilk - 2 April, het 7:35 p.m. van 2007 @
Ik zal van de bodem in het beantwoorden van dat stijgen.
Eerst is dat een grote verbinding. Dank! Het is absoluut op mijn leeswijzerlijst.
En JA, is het gaan na de generators de juiste manier te gaan. Nochtans, worden de generators zelf niet geassociÃërd met de lijsten in elk geval ik buiten de trekkercode kon vinden. De generators worden niet zelfs vereist om na het gebied of de lijst worden genoemd. Noch AR de trekkers. Lees hier: http://www.delphi32.com/info_facts/faq/faq_987.asp
Zo voor Interbase, is de primaire sleutel eenvoudig een intergergebied en een trekker van één of andere naam wordt toegevoegd geassociÃërd de tussenvoegselactie. Dat betekend heb ik onderzoek de memorandumtekst naar elke trekker op de lijst gehad en een generatorverwijzing hebben gezocht. Ik kon waarschijnlijk de tussenvoegseltrekkers op de een of andere manier isoleren… en enkel die zoeken. Ik de eerste verwijzing van de Generator moeten veronderstellen was inderdaad ik wilde, maar dat zou waarschijnlijk een eerlijke weddenschap zijn.
Zo, in plaats van het doen dat, ik na de primaire sleutel ging, die is wat u me ziet doend in dit voorbeeld. Zo, is wat de vraagverklaring doet gaat na maximum waarde op het primaire belangrijkste gebied van de tabel 1 am die werkt met. Dat zou meestal moeten werken maar het is niet gewaarborgd. Afterall zou het auton.v.- gebied het derde gebied in de lijst KUNNEN zijn.
Goed, vandaag is een andere dag en ik heb op dit verder gedacht. Ik denk de correctste manier de tekst van het MEMORANDUM terug te winnen en en het te ontleden IS.
Zo is wat ik zal moeten doen vondst uitgezocht van RDB$TRIGGERS waar RDB$RELATION_NAME= [de lijstnaam van het tussenvoegsel] en RDB$TRIGGER_TYPE=1. Dat zou niet moeten hard zijn. Dan bepaal de plaats ik van eerste GEN_ID (en versiering van tot het eind van dat. Dan moet ik een komma zoeken en het afsnijden en daar daarna. Dan zou ik de naam van de trekker moeten hebben. Dan kan ik een uitgezochte verklaring doen, terugwinnend de trekker en ik zal moeten specificeren dat ik aan Toename door 0 wil.
Ja, zou dat eigenlijk het moeten doen… Misschien zal ik om aan dat wat meer krijgen te werken morgen… Dank voor het stellen van de vraag! Ik moest aparently dit na een onderbreking opnieuw bezoeken.
Commentaar tegen Brian - April 2, het 9:52 p.m. van 2007 @
Waarom? Voor Delphi voor PHP?
Commentaar tegen Joe - April 3, het 5:30 p.m. van 2007 @
[...] Die Ik 9 jaar van ervaring IB/FB komen=zou= in handig heb geweten. [...]
Pingback door Firebird News“ Wahoo! Ik deed het! Het laatste deel van een wp-DB.PHP voor Interbase/Firebird - 4 April, het 9:42 am van 2007 @
[...] abstractielaag voor WordPress. Het staat u toe om WordPress op divers gegevensbestand in werking te stellen. Lees meer hier. Permalink | Aandeel (digg, enz.): Â Â Â Â Â [...]
Pingback door Firebird News“ wil WordPress met FB in werking stellen? - 10 april, het 10:52 am van 2007 @
Als your'e gebruikend (nieuwe) Firebird 2, u dit kunt doen gebruikend de nieuwe het terugkeren clausule voor tussenvoegselverklaringen. Voor meer info, lees pagina 39 van de versienota's van versie 2.0.0 of 2.0.1.
Commentaar door jachguate - 10 April, het 2:04 p.m. van 2007 @
jachguate! Dank u! Ik zal eigenlijk een tweede omzettingsmodule voor FB2+ maken. Ik totaal gemist die eigenschap.
Jammer genoeg, heeft het bedrijf ik dit doe voor eerder sterk gevoel op het debat IB/FB!
Commentaar tegen Brian - April 10, het 2:15 p.m. van 2007 @