Я пытаюсь избавиться от ошибки ASAP. Я использую mysql_num_rows, но он ВСЕГДА возвращает 0. И я не знаю, связано ли это с тем, что у меня неправильный синтаксис или что … вы можете мне помочь? вот код;
<?php include_once("checklogin.php"); $u = ""; if(isset($_GET["u"])){ $u = preg_replace('#[^a-z0-9]#i', '', $_GET['u']); } else { header("location: http://www.myswesite.com/login.php"); exit(); } $sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1"; $user_query = mysqli_query($connection, $sql); $numrows = mysqli_num_rows($user_query); if($numrows < 1){ echo "User does not exist or is not yet activated, press back"; exit(); } ?>
Я думаю, что есть синтаксическая ошибка в вашем запросе, когда вы передаете имя пользователя, попробуйте это, я думаю, что это работает для вас.
$username=$_SESSION['username']; SELECT * FROM tbl_users WHERE Username='".$username."'
Вы должны использовать store_result для буферизации набора результатов, прежде чем вы сможете получить число строк.
$user_query = mysqli_query($connection, $sql); mysqli_store_result($connection); $numrows = mysqli_num_rows($user_query);
См. http://www.php.net/manual/en/mysqli-result.num-rows.php :
Для небуферизованных наборов результатов mysqli_num_rows () не вернет правильное количество строк до тех пор, пока все строки результата не будут получены.