mysql_result недействительный ресурс - PullRequest
1 голос
/ 21 июня 2011

это мой код

function code_exists($code){
  $code = mysql_real_escape_string($code);
  $code_exists = mysql_query("SELECT COUNT('url_id') FROM 'links' WHERE 'code'='$code'");
  return (mysql_result($code_exists, 0) == 1) ? true : false;
}

предполагается проверить БД, чтобы убедиться, что $ код в нем или нет но он продолжает давать мне ту же ошибку

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 
/home/codyl/public_html/projects/tests/url/func.inc.php on line 16

Ответы [ 3 ]

5 голосов
/ 21 июня 2011

У вас есть синтаксическая ошибка в запросе MySQL, попробуйте это.

Они не являются одинарными кавычками, они являются кавычками `

mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'");

Я бы порекомендовал вам всегда обрабатывать ошибки mysql.

вы можете переписать так

mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'") 
                      OR
               trigger_error(mysql_error());
1 голос
/ 21 июня 2011

Как сказал Шакти, у вас есть ошибка в вашем sql

$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'");

Вам необходимо окружить имя поля галочками (`), а не одинарными кавычками. Вы также должны добавить оператор в chech, если запрос был выполнен как ожидалось.

$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'") or die('Error in my query: '. mysql_error());

Это убьет вашу программу, выдавшую ошибку mysql.

1 голос
/ 21 июня 2011

Вы не ловите ошибки, поступающие от mySQL, когда запрос не выполняется.Используйте mysql_error() для их вывода, например, так:

$code_exists = mysql_query(....);
if (!$code_exists) 
 trigger_error("MySQL error: ".mysql_error(), E_USER_ERROR);

(Использование trigger_error() так, когда ваш сайт запускается и отчеты об ошибках отключены, ошибки MySQLневидим для пользователя.)

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

Вы должны либо использовать обратные пометки `, либо вообще не заключать в кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...