Привет, ребята, просто любопытно решить эту неприятную проблему. Вот мой фрагмент.
Я проверил некоторые другие вопросы, подобные моей ошибке, но пока я не могу решить проблему.
Буду признателен за любую оказанную помощь. 🙂
<?php function user_exists ($username) { $username = sanitize($username); return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = $username"), 0) == 1) ? true : false; } ?>
Вы должны разделить свой код на несколько строк для обработки этих ошибок или особых случаев. mysql_query
будет возвращать ноль в n строк или ошибку, если это произойдет. Таким образом, возвращаемый ресурс будет истинным только для запросов без ошибок. Это можно использовать для обработки таких ситуаций, как описано ниже.
Сначала создайте и выполните запрос, затем обработайте ресурс .
$query="SELECT COUNT(user_id) FROM users WHERE username = ".$username; $result = mysql_query($query);
u может использовать следующее, чтобы определить, что происходит в случае ошибки:
if(!$result) die("SELECT failed: ".mysql_error());
или эта идея для решения проблемы
if (!$result=mysql_query($query)) { return false; // or similar operation } if (mysql_num_rows($result)!=1){ return false; }else{ return true; }
Это может произойти, когда mysql_query
возвращает false, если по какой-то причине он не работает. Поэтому вы должны разделить это на несколько операторов и проверить возвращаемые значения
$sql = "SELECT COUNT(user_id) FROM users WHERE username = $username"; $result = mysql_query($sql); if ($result === false) { // error handling return false; } return (mysql_result($result, 0) == 1) ? true : false;