Jak rozumiem ciąg tworzący zapytanie a zawierający fragment:
...nazwa=$obiektwartosc...
jest zawarty w podwójnych cudzysłowach (") a zmienne są wyłącznie liczbowe i przeescapeowane?
Poprosimy o więcej kodu AS IS, oczywiście z wytartymi danymi dostępowymi dla bazy... :P bo coś czuję, że to o te nieszczęsne result się rozchodzi, brakujące ciapki w query stringu albo inszą inszość (krótko mówiąc: coś po drodze a błąd dopiero wywala się na fetch-owaniu).
Ale! Jak będzie kod - popatrzymy, podyskutujemy, poradzimy... :)
EDIT:
Jeśli zapytanie jest opakowane w podwójne ciapki to można obejść się bez pośrednich podstawień korzystając tylko z nawiasów klamrowych `{` oraz `}`. Co jednak nie zwalnia przed walidowaniem lub/i escapeowaniem danych!
Przykład:
$query = "SELECT `id`, `uid`, `key` FROM pending_jobs WHERE `state`='{$request->state}' AND errors=0";
(proszę przekopiować powyższe zapytanie do jakiegoś notatnika i dokładnie przyjrzeć się występującym tam apostrofom - są ich aż trzy rodzaje!)
Odwrotny apostrof (zwykle umieszczony na klawiaturze z tzw. tyldą (~), obok cyfry jeden) daje możliwość operowania na polach bazy, gdy ich nazwy są częścią składni języka SQL (np. KEY) - zwykle nie trzeba ich używać ale...przezorny zawsze ubezpieczony.
Pojedynczy (prosty) apostrof (zwany czasami pojedynczym ciapkiem) służy zwykle do otaczania wartości, które są ciągami. W MySQL-u liczby też można otaczać ciapkami - dla silnika bazy to zwykle bez znaczenia - on i tak to sobie jeszcze z raz wszystko przetwarza.
Podwójny (prosty! w odróżnieniu do pisarskich) apostrof (zwany czasami podwójnym ciapkiem lub quotem) może także otaczać wartości ale jeśli całe query jest zawarte w takich samych ciapkach - to te wewnątrz trzeba wyeskejpować ("... WHERE state=\"stalled\" ..." - to jest przykład z podwójnymi, z pojedynczymi jest tak samo tyle że pojedyncze ciapki utrzymujące całe zapytanie nie pozwalają na osadzanie w nim zmiennych poprzez dolary i klamerki).