おそらく$ stmt12->は(フェッチものに応じて、プログラム内の抜け穴があるかもしれません)ありません。データの配列をフェッチする場合、whileループは期待どおりに動作しない可能性があります。以下は、あなたが試してみたいかもしれないものにコメント代替です:
<?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--;
}
?>
にはまだ別の代替されています
<?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
}
あなたがコードしているが壊れています。それ以外の部分を追加し、エラーが発生した場合は – dimlucas
を入力してください。データベースを使用せずに実行できないため、あまり役に立ちません。私は公共の静的関数の中にこのクエリを持っています。問題は、このコードが値の配列を返さないことと、誰かが何かを見つけられるかどうか疑問に思っていたことです。 – Earl
'fetch()'の代わりに 'fetchAll()'を使う=> '$ propertyvaluerow = $ stmt12-> fetchAll();' –