Es könnte möglicherweise eine Lücke in Ihrem Programm, je nachdem, was die $ stmt12-> fetch() tut. Wenn es ein Array von Daten abruft, verhält sich Ihre while-Schleife möglicherweise nicht wie erwartet. Nachfolgend finden Sie eine kommentierte Alternative zu dem, was Sie ausprobieren wollen könnte:
<?php
global $db;
$stmt12 = $db->query('SELECT `Value` FROM overriddenpropertyvalues WHERE ParentGUID LIKE "' . $itemguid . '";');
// ASSUMES YOU ARE USING PDO SO WE FETCH ALL THE DATA
$propertyvaluerow = $stmt12->fetchAll();
// THERE MIGHT BE A LOOPHOLE IN YOUR PROGRAM DEPENDING ON WHAT $stmt12->fetch() IS AND DOES
// ASSUMING IT FETCHES AN ARRAY OF NESTED OBJECTS OR SCALAR VALUES, THE WHILE LOOP WOULD NOT BEHAVE AS EXPECTED.
// THAT MEANS IF IT IS AN ARRAY YOU COULD USE A DIFFERENT CONSTRUCT LIKE THE ONE BELOW YOUR WHILE CONSTRUCT:
/* while ($propertyvaluerow != null) { */
// CREATE A $count VARIABLE TO HOLD THE INCREMENTAL COUNT THROUGH THE ITERATION:
$count = count($propertyvaluerow);
while($count > 0){
// DO YOUR WORK HERE
//DECREMENT THE VALUE OF COUNT OTHERWISE YOU MAY HAVE AN INFINITE LOOP TO DEAL WITH.
$count--;
}
?>
Es gibt noch eine weitere Alternative:
<?php
// OR EVEN A MUCH MORE EASIER WAY IS TO USE THE FOREACH LOOP, WHICH ACHIEVES THE SAME THING AS THE WHILE LOOP:
foreach($propertyvaluerow as $iKey=>$objData){
// SIMPLY USE THE $objData IN WITHING THE LOOP
// THE $objData IS THE VALUE OF THE CURRENT OBJECT IN THE $propertyvaluerow IN THE ITERATION
}
Sie sind Code gebrochen ist. Bitte fügen Sie den Rest hinzu und fügen Sie auch alle Fehler hinzu, die Sie bekommen – dimlucas
es würde nicht viel nutzen, da Sie es nicht ohne die Datenbank sowieso ausführen können. Ich habe diese Abfrage innerhalb einer öffentlichen statischen Funktion. Das Problem ist, dass dieser Code kein Array von Werten zurückgibt und ich mich gefragt habe, ob irgendjemand etwas erkennen kann. – Earl
Verwenden Sie 'fetchAll()' anstelle von 'fetch()' => '$ propertyvaluerow = $ stmt12-> fetchAll();' –