2013-05-02 3 views
0

Im получаю эту ошибку:Предупреждение: mysql_result(). Невозможно решить

Предупреждение: mysql_result(): поставляется аргумент не является допустимым MySQL результаты ресурс

Ive проверил другие вопросы по этому поводу и не могу найти ответ. Любые мысли об этом?

$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `active` == 1"); 
return(mysql_result($query, 0) == 1) ? true : false; 
+0

Снимите '» «' 'из username' – asprin

ответ

2

запрос должен быть, вы использовали ' вокруг имени столбца, вы должны окружить его `

mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'"); 

изменения этого

`active` == 1"); 

в

`active` = 1"); 
+0

Я не уверен, что в этом по-другому? – RightLeftRight12

+0

Я не вижу нисходящего потока – asprin

+1

Хорошо, я вижу это сейчас! Большое спасибо – RightLeftRight12

3

Причина, по которой ваш запрос не будет работать, заключается в том, что вы обводите имя столбца и имя таблицы одинарными кавычками. Они являются идентификаторами, а не строковыми литералами, поэтому их не следует обматывать одиночной цитатой.

SELECT COUNT(id) FROM users WHERE username = '$username' 

Если это случается, что имена столбцов и название таблиц используется зарезервированным ключевое слово, они могут быть бежать с обратными кавычками не с одинарными кавычками.

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

Другие ссылки:


Как Замечание, запрос уязвима с SQL Injection, если значение (s) переменных пришли снаружи. Пожалуйста, ознакомьтесь с приведенной ниже статьей, чтобы узнать, как ее предотвратить. Используя PreparedStatements, вы можете избавиться от использования одинарных кавычек вокруг значений.

+0

+1 для точного объяснения – asprin

+1

Хорошо спасибо очень! – RightLeftRight12

+0

Мне очень жаль об этом, но теперь я получаю предупреждение на другой строке, но изменил его в соответствии с другим. Будете ли вы любезны взглянуть на это? Его выше – RightLeftRight12

1

Это не правильный способ избежать столбца оператора использовать, если вы одиночный обратную кавычку хотите нравятся

$query = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'"); 
Смежные вопросы