Есть много вопросов по этому поводу, и я провел много исследований. Однако мне все еще интересно, правильно ли я это делаю.
Вот мое утверждение (я упростил его):
try {
$stmt = $pdc_db->prepare("SELECT * FROM table WHERE color = :color");
$stmt->bindValue(':color', $selected_color);
$stmt->execute();
$color_query = $stmt->fetchAll();
} catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
Теперь я использую следующее, чтобы увидеть, принесло ли это какие-либо результаты:
if (count($color_query) > 0) {
Это работает, ОДНАКО ... оператор SELECT вернет только один результат. Так что теперь, чтобы получить доступ к материалам в результатах, я использую $ color_query [0] [colorname]. Я знаю, что это потому, что я использую fetchAll (), но я действительно хочу использовать fetch ()
Но если я просто использую fetch (), я теряю способность делать count (), что для меня довольно просто. Я знаю, что могу сделать отдельный запрос и проверить результаты SELECT COUNT (*), но это кажется дополнительной работой (настройка двух отдельных запросов для каждого)
Должен быть способ, использующий PDO в PHP с mySQL, проверить, вернул ли fetch () результат?