Это означает, что вы уязвимы для внедрения SQL-кода, и ваш код не выполняет достаточной проверки на наличие ошибок.
Абсолютно «безопасным» битом кода будет:
<?php
... connect to db ...
$stringval = mysql_real_escape_string($_GET['param']);
$sql = "SELECT somefield FROM sometable WHERE otherfield='$stringval'";
$result = mysql_query($sql) or die(mysql_error());
еще лучше перестать использовать функции mysql и переключиться на PDO и параметризованные запросы. Они автоматически решают проблемы с впрыском.
Основной причиной вашего сообщения об ошибке является то, что ваш запрос вызвал синтаксическую ошибку. Когда запрос сразу же завершается таким образом, mysql_query()
возвращает логическое значение FALSE, а не дескриптор оператора.
Поскольку вам не хватает какой-либо проверки ошибок, вы слепо взяли это логическое значение false и передали его функции выборки, которая справедливо жаловалась на то, что вы не предоставили дескриптор результата.