Что делает & ldquo; instance [safe] & rdquo; среднее значение в ghci & ldquo;: info & rdquo; вывод? [Дубликат]

Как объяснил scompt.com , запрос может завершиться ошибкой. Используйте этот код, чтобы получить ошибку запроса или правильный результат:

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query("
SELECT * FROM Users 
WHERE UserName LIKE '".mysql_real_escape_string($username)."'
");

if($result)
{
    while($row = mysql_fetch_array($result))
    {
        echo $row['FirstName'];
    }
} else {
    echo 'Invalid query: ' . mysql_error() . "\n";
    echo 'Whole query: ' . $query; 
}

Для получения дополнительной информации см. Документацию для mysql_query() .

Фактической ошибкой были одиночные кавычки, так что переменная $username не анализировалась. Но вы действительно должны использовать mysql_real_escape_string($username), чтобы избежать инъекций SQL.

6
задан ZhekaKozlov 1 November 2015 в 16:51
поделиться

1 ответ

Это просто означает, что тип данных определяется в модуле, который определяется с помощью безопасного расширения. Вы можете найти детали расширения в руководстве пользователя .

Фактически вы можете проверить это самостоятельно, указав модуль с расширением Safe:

{-#LANGUAGE Safe#-}

data Test = Test deriving (Eq, Show)

И затем попробуйте его в ghci:

λ> :i Test
data Test = Test    
instance [safe] Eq Test 
instance [safe] Show Test 

Но обратите внимание, что в текущем GHC (7.10.2) безопасное расширение не может быть связано с гарантией доверия, потому что из этой ошибки ghc .

5
ответ дан Sibi 27 August 2018 в 11:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: