Sziasztok!
Egy régi adatbázist migrálgatok 5-ös alá és úgy alakult, hogy cck mezőkkel oldottam meg az új tartalmat, ami az adatbázisban szerializált php cuccokat tárol, tehát tele van {} jelekkel.
Namármost ugye ezek a drupal tábla escape karakterei és a db_prefix_tables() szépen kigyomlálja őket.
Van valami elegáns megoldás erre? - Én most átírtam a core-t, hogy működjön, végülis csak ideiglenesen van rá szükség:
Fórum:
Máshol lesz a hiba!
Mutatnál egy példát, mert szerintem valamit nagyon nem jól csinálsz!
Egyébiránt miért nem a node_save függvényt használod?
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
biztos máshol van
Na belenéztem a database.inc-be.
90%, hogy Te nem megfelelően használod a db_query-t.
helytelen:
helyes:
Nézd meg a db_query-t, és látni fogod, hogy előbb a táblaneveket szedi ki(db_prefix_tables), majd a változókat cseréli(_db_query_callback) és megfelelően eszképeli. (pl. szövegnél mysql-nél ' helyett \' oracle-nél ' helyett '' kell.)
Ja és ne felejtsük el, hogy az SQL szabvánnyal szemben, Drupal-ban mindig nagybetűsek az SQL kulcsszavak.
Érdemes elolvasni a Drupal SQL kódolási szabályait
röviden a lényeg:
Magyar szerűen(nem vagyok egy műfordító alkat.):
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
A lekérdezés:
A lekérdezés:
Az a bajom, hogy a db_prefix_tables() kiszedi a tartalmamból is a {} -t
Igazad van, ha változóba
Igazad van, ha változóba rakom a szöveget, akkor nem fogja kiszedni.
pager_query külön figyelmet érdemel
Nem tartozik szorosan a témához, és már lehet hogy nem is aktuális, de az utókor kedvéért megjegyezném hogy a pager_query() használata esetén külön figyelni kell az SQL utasításon belüli sortörésekre.
Helytelen:
Helyes:
Ha jól emlékszem akkor a Drupal 4.6-os volt az aktuális.
Egy bő fél napom ráment mire rájöttem, hogy az első változat miért nem működött.
Illetve mindenféle hibaüzenet nélkül működött, csak éppen a lapozó linkek nem jelentek meg. Az a string kezelő rész ami a SELECT és FROM közötti mezőneveket lecseréli a COUNT(*) aggregátor függvényre, nem vette figyelembe a sortöréseket.