@lemonlimelike

Как проверить на существование строки php?

$std = $pdo->prepare("SELECT * FROM reg WHERE login=':login'");
	$std->bindParam(':login', $login);
	$std->execute();
	while($row = $std->fetch(PDO::FETCH_ASSOC)){
		return $row['login'];
	}
	if($row[0]>1){
		echo "Существует";
	}else{
		echo "Нет";
	}


Как проверить есть ли такой уже логин в бд? другими словами как в while записать mysqli_num_rows только на pdo
  • Вопрос задан
  • 380 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Мда, код конечно эталонный. Хоть сейчас на стенку и в рамочку, "как писать код не приходя в сознание".
Впрочем, отвечатели, по традиции, не лучше.

Во-первых, нубская ошибка.
Если в запросе используются параметры, то кавычечки в нем старательно вырисовывать не надо.

Во-вторых, зачем-то используемтся while, хотя строка нам нужна только одна.

Ну и в-третьих совсем уж, прямо скажем, бессмысленные телодвижения - return, после которого автор надеется выполнить какой-либо код, и поиск в ассоциативном массиве значения с индексом 0.

Короче, если выбросить весь мусор, то у нас задачка в четыре действия.

1. Подготовить запрос
2. Исполнить запрос
3. Получить результат
4. проверить результат

$stmt = $pdo->prepare("SELECT 1 FROM reg WHERE login=?");
$stmt->execute([$login]);
$found = $stmt->fetchColumn();
if($found){
    echo "Существует";
}else{
    echo "Нет";
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
SELECT count(*) WHERE ... не? Если вернется 0 - значит нету.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы