db_query() paraméterek

realdream képe

Ha a DB_QUERY(lekérdezés,paraméterek) használom és a lekérdezés már eleve tartalmaz %d-t , akkor annak helyére illeszti be a decimális paramétert.
Pl:

DB_QUERY("select users.uid from users 
   inner join (select node.uid from node inner join content_type_teszt_times on
   node.nid=content_type_teszt_times.nid where node.type='teszt_times' and
   DATE_FORMAT(ADDTIME(content_type_teszt_times.field_time_utc_value, SEC_TO_TIME(10)), '%Y%m%d') >= %s) as j_teaching_times on j_teaching_times.uid=users.uid 
group by users.uid","20090308")

A fenti kódrészlet mysql date_format függvényéhez tartozik a %d ami napot jelenti, de ennek helyére kerül a paraméter. Mi ilyenkor a megoldás?

Drupal verzió: 
realdream képe

Dupla %-jel a megoldás
lásd: http://hu.php.net/manual/en/function.sprintf.php

0
0

-------------------------------
http://www.realdream.hu

pp képe

Azt ugye tudod, hogy ezt ha lehet kerülni kell?

pp

0
0
realdream képe

Ezt mire érted? A paraméterek használatára? Az éles kódban a {} zárójeleket természetesen használom, de előtte ki kell próbálni az sql lekérdezést más sql menedzser programban pl. phpmyadmin stb..., hogy működik-e, és ha kész lesz akkor teszem bele a kapcsos zárójeleket.

Az egyedi sql lekérdezést nem tudom elkerülni, mert az adatbázis nagyon bonyolult lett és ezt már a views-el nem lehet megoldani.
Egy eseménynaptárt készítek, amire itt tettem fel a kérdést, hogy ckk vagy teljesen egyedi modul a javaslat, mindenki azt mondta, hogy ckk.
Az eredmény egy egyszerű lekérdezés is nagyon bonyolult lett pl.: Leválogatni a hétfő 18-órakor rendelő, angolul beszélő és idegsebész orvosokat. Ehhez kellenek a
node, users, content_type_...(több), content_type_user_profile, term_node táblák.
A content_type_ táblák nem tartalmazzák sem az uid sem a taxonomy_term kódokat és ez több tartalomtípusnál már igen bonyolult egymásba ágyazott sql lekérdezéseket kíván.
Ezt több tízezer felhasználónál nagyon optimalizálni kell, amit a views-el már nem tudok kézben tartani.
Ha biztonsági kérdésre gondoltál akkor mi az pontosabban?

0
0

-------------------------------
http://www.realdream.hu

nevergone képe

pp képe

A db_query-nek nem akármilyen formában kell megadni amit akarsz, hanem igen komoly elvárások vannak vele szemben. Nem tudom, hogy mi a feladat, de a spec mysql függvények használata sem a legjobb megoldás, mivel ezzel nem portolhatóvá teszed a modulodat. (sose hidd, hogy csak itt és csak most kell majd neked vagy bárki másnak ezt felhasználnia).

pp

0
0