Проверка существования строки с помощью PDO
Вы столкнулись с трудностями при проверке существования строки в базе данных с использованием PDO. Чтобы решить эту проблему, рассмотрите следующее решение:
Как предложено в ответе, вы можете напрямую проверить возвращаемое значение запроса. Вот пример:
$stmt = $conn->prepare('SELECT * FROM table WHERE ID=?');
$stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$row) {
echo 'Row does not exist';
}
В этом коде $stmt->execute() пытается выполнить запрос. Если строка не найдена, $stmt->fetch() возвращает FALSE. Это позволяет вам использовать условие if (!$row), чтобы определить, существует ли строка.
Кроме того, если вы хотите проверить наличие нескольких строк или избежать выборки строки, вы можете использовать $stmt-> метод fetchAll():
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!$rows) {
echo 'No rows found';
}
В качестве альтернативы вы можете указать MySQL возвращать 1 при обнаружении строки:
$sql = 'SELECT 1 from table WHERE id = ? LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['id']]);
if ($stmt->fetchColumn()) echo 'Row found';
Этот подход устраняет необходимость извлечения строки, повышая эффективность.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3