PDO プリペアード ステートメントに移行していますが、ステートメントSELECTを使用した基本的なクエリの構文に問題がありますWHILE。
以下のforeachステートメントは正しい結果をエコーしますが、PDO::FETCH_ASSOCクエリは返された最初の結果をスキップしています (そのため、常に必要な結果よりも少ない 1 つの結果をエコーします)。
PDO::FETCH_ASSOC
$stmt = $conn->prepare("SELECT * FROM products");
$stmt->execute();
$row = $stmt->fetch();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['product_name'].' '.$row['price'].' '.$row['color'], "<br />";
}
foreach
foreach($conn->query('SELECT * FROM products') as $row) {
echo $row['product_name'].' '.$row['price'].' '.$row['color'], "<br />";
}