Попробуйте использовать count(*)
вместо этого:
$stmt = $dbcon->prepare("SELECT count(*) FROM users WHERE email=:email");
$stmt->execute(array(':email' => $email));
$count = $stmt->fetchColumn();
Надеюсь, это может вам помочь.
Для моего назначения требуется некоторое Ajax / JQuery, чтобы интерактивно проверить, доступно ли имя пользователя. Это то, что у меня есть, но это не работает. Очевидно, у меня нет большого опыта.
PHP Back-end
<?php
if($_POST)
{
$email = strip_tags($_POST['email']);
$stmt=$dbcon->prepare("SELECT email FROM users WHERE email=:email");
$stmt->execute(array(':email'=>$email));
$count=$stmt->rowCount();
if($count>0)
{
echo "<span style='color:brown;'>Sorry username already taken !!!</span>";
}
else
{
echo "<span style='color:green;'>available</span>";
}
}
?>
По очевидным причинам я вынул соединение с БД.
JS Script Я использую
$(document).ready(function()
{
$("#email").keyup(function()
{
var email = $(this).val();
if(email.length > 3)
{
$("#user-result").html('checking...');
/*$.post("username-check.php", $("#reg-form").serialize())
.done(function(data){
$("#result").html(data);
});*/
$.ajax({
type : 'POST',
url : 'checkemail.php',
data : $(this).serialize(),
success : function(data)
{
$("#user-result").html(data);
}
});
return false;
}
else
{
$("#user-result").html('');
}
});
});
Существует промежуток с указанным идентификатором, который должен отображать текст, но ничего не происходит. Застрял здесь некоторое время.