Seite 1 von 1
getResultObject & copyResultToArray | geht nicht richtig
Verfasst: Mi 23. Dez 2009, 10:27
von _wiewo_
Hallo Community,
sitze gerade an einem schönem Modul, und könnte super gut die "getResultObject" Funktion des db layers gebrauchen...
mache das so...
Code: Alles auswählen
$db->query($sQuerySelectEvents);
$oResult = $db->getResultObject();
var_dump($oResult);
als ergebnis bekomme ich aber nur
der query an sich der macht alles richtig
----------------------------
mache ich
Code: Alles auswählen
while ($db->next_record())
{
$aEvents[] = $db->copyResultToArray();
}
bekomme ich ein multi array mit genau so vielen einträgen wie er auch wirklich anzeigen sollte
nur leider ist nur das 1. array gefüllt mit den werten der 1. zeile aus der db, der rest ist leer
kann mir da mal jemand auf die sprünge helfen?
-------------------------------
Contenido 4.8.12 - mysqli
Re: getResultObject & copyResultToArray | geht nicht richtig
Verfasst: Fr 25. Dez 2009, 19:21
von xmurrix
Hallo _wiewo_,
liefert den aktuellen Datensatz, auf dem der Zeiger gerade steht, daher müsstest du mindestens einmal next_record() aufrufen.
Beispiel:
Code: Alles auswählen
$db->query($sQuerySelectEvents);
if ($db->next_record()) {
$oResult = $db->getResultObject();
var_dump($oResult);
}
Gruß
xmurrix
Re: getResultObject & copyResultToArray | geht nicht richtig
Verfasst: Sa 26. Dez 2009, 16:18
von _wiewo_
also sollte ich meine beiden ansätze oben einfach mal mischen...
werde ich montag mal machen
frohe weihnachten allen

Re: getResultObject & copyResultToArray | geht nicht richtig
Verfasst: Mo 28. Dez 2009, 08:34
von _wiewo_
Query mit 4 Ergenissen
Code: Alles auswählen
$db->query($sQuerySelectEvents); // Query mit 4 Ergebnissen
while ($db->next_record())
{
$oEvents[] = $db->getResultObject();
}
var_dump($oEvents);
ergebnis
array
0 => null
1 => null
2 => null
3 => null
*achselzuck*

versteh das nicht... hilfe

Re: getResultObject & copyResultToArray | geht nicht richtig
Verfasst: Mo 28. Dez 2009, 12:05
von xmurrix
Ok, mein Beispiel war geraten also so nicht richtig, sorry...
Habe mir das etwas näher angesehen, die Verwendung sollte folgendermaßen sein:
Code: Alles auswählen
$db->query($sQuerySelectEvents); // Query mit 4 Ergebnissen
while ($row = $db->getResultObject()) {
var_dump($row);
}
Nun kommt das "Aber":
Damit es funktioniert, ist eine kleine Anpassung in der conlib/db_mysqli.inc nötig.
In der Zeile 561 wird überprüft, ob die Link_ID und die Query_ID eine gültige Ressource ist. Das ist in in diesem Fall nicht ganz richtig. Bei mysqli ist die Link_ID eine Instanz von "mysqli" und die Query_ID eine Instanz von "mysqli_result".
Ich würde die Zeile 561
Code: Alles auswählen
if (is_resource($this->Link_ID) && is_resource($this->Query_ID)) {
ändern in
Danach funktioniert es wie gewünscht. Sieht also nach einem Bug aus und sollte behoben werden...
Gruß
xmurrix
Re: getResultObject & copyResultToArray | geht nicht richtig
Verfasst: Mo 28. Dez 2009, 12:17
von _wiewo_
ah statt den nächsten record zu laden (next_record) lade ich das ganze result(getResultObject), okay hät man echt drauf kommen können, naja
okay, danke, auch für den tip mit der anpassung und dem anscheinend "bug"