Üdv!
I./ A db_query() eredményét lehet ellenőrizni? Csak azért, hogy ha hiba van, akkor ne irassak ki a drupal_set_message()-val felesleges üzenetet. Pl. volt már olyan, hogy INSERT SQL műveletnél duplicate unique key error-t adott az SQL szerver, a db_affected_rows() mégis okét adott.
Erre ugye megjelent az én üzenetem felett piros keretben a duplicate sql hiba.
Vagy ez csak SELECT, UPDATE esetén működik?
<?php db_query( "INSERT INTO ..."); if ( db_affected_rows() ) { drupal_set_message('Bejegyzés rögzítve.'); } else { drupal_set_message('Bejegyzés nem rögzíthető!', 'error'); } ?>
Drupal verzió:
Fórum:
lehet
ha a kérés nem futott le megfelelően akkor a
<?php db_query($query); ?>
függvényFALSE
értékkel tér visszamégsem FALSE volt
Épp azt irtam, hogy "duplicate key error"-t adott az SQL szerver és mégis TRUE ágon ment tovább a db_affected_row(). :O
G.
a fenti kód alapján?
hol hogyan ellenőrizted a db_query(); eredményét? ugyanis a db_affected_rows(); egyáltalán nem erre van kitalálva, mint amire te jelen esetben "használod", ennek a visszatérési értéke a lefutott kérés alapján megváltoztatott sorok száma, ergo ha 0 akkor is igaz lesz és megy tovább
mi a jó megoldás?
Akkor mi lenne a jó megoldás? (SELECT, INSERT, UPDATE, DELETE esetén.)
G.
Ha rendben
fut le az adatbázisban a lekérdezés akkor igaz értékkel tér vissza, különben hamis. Esetedben, ha nem tudta a beszúrást megcsinálni, mert a megszorítás ( primary key, unique, stb. ) nem engedte, hamis értékkel tér vissza.
Üdv!
Dudás József
tehát
A db_affected_rows() tehát akkor használható, ha rekordok (sorok) módosultak a táblában, pl. insert, update, delete parancsok esetén használható. Ezt lehet vele ellenőrizni.
"Determine the number of rows changed by the preceding query."
Megadja az előző query által megváltozott sorok számát.
Változás insert, update, delete esetén van, igaz?
G.
nem igazán akarod megérteni
de ezen mi már itt szerintem nem fogunk tudni segíteni
de értem
Értem. A db_query() FALSE-al tér vissza ha hibás a query, ok.
Csak az a kérdés, ha a db_affected_rows() milyen esetben használható. SELECT esetén nem, mert ott nincs módosult rekord. INSERT, UPDATE, DELETE esetén van rekordváltozás.
Gondolom ezekben az esetekben lehet (van értelme) a db_affected_rows()-t használni.
G.
Tartalom tulajdonság lekérdezése
Sziasztok!
Az lenne a kérdésem, hogy hogyan lehet egy tartalom az azonsoítóját lekérdezni és azt elmenteni egy munkamenet függvénybe, hogy bárhol letudjam kérdezni az értéket. Mondjuk ha betöltök egy meglévő tartalmat, akkor annak hoygan tudom lekérdezni az adatbázisbeli azonbosítóját?
Előre is köszönöma segítséget
Légyszi kezdj új témát!
Ennek a kérdésnek semmi köze az eredeti kérdéshez!
Nagy Gusztáv