Aqui está o que você faz como um primeiro passo. Remova o
WHERE url = '$url'
da sua consulta e imprima mysql_num_rows($exists)
antes de usá-lo. Isso deve ser suficiente para dizer se é um dos dois problemas mais prováveis:
- URL incorreto resultando em nenhuma linha sendo retornada; ou
- linha incorreta causada por banco de dados contendo algo diferente do esperado.
Com base em seus comentários até o momento, o primeiro é o mais provável. Se você receber uma linha de volta sem o
where
cláusula, você terá que descobrir por que seu URL está incorreto. Isso pode ser um problema de distinção entre maiúsculas e minúsculas ou um problema de preenchimento (tamanho), entre outras coisas. Se, como você mencionou em um comentário,
like
funciona onde =
não, então precisamos ver seus dados. Execute (no nível do banco de dados):
select concat('[',url,']') from sites
e nos mostre exatamente qual é a saída. Da mesma forma, produza a URL que está sendo usada pelo código com algo como:
print_r($url)
imediatamente antes de executar o
mysql_query
. Por favor, anexe a saída de ambos os comandos à sua pergunta.