Ошибка Unknown column '' in 'where clause'

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2023

Есть какая-то очень странная ошибка, объясните, почему она возникает?

Вот сама строчка, на которой возникла ошибка

А здесь таблица

введите сюда описание изображения

Ответы

▲ 0

Ошибка возникла, так значение переменной $teamname в косых кавычках интерпретировалось как название колонки, а не строковое значение.

Используйте двойные кавычки для строкового литерала, косые кавычки - для выделения названия колонки и одинарные - для константы в SQL-запросе:

$check = mysqli_query(
    $link, 
    "SELECT * FROM sc_platform_users WHERE `teamname` = '{$teamname}'"
) or die("ERROR: " . mysqli_error($link));

Но такой способ не защищен от SQL-инъекций, и потому правильней было бы использовать PreparedStatement:

$query = "SELECT * FROM sc_platform_users WHERE `teamname` = ?";
$stmt = $link->prepare($query);
$stmt->bind_param("s", $teamname);
$stmt->execute();
$check = $stmt->get_result();
// ...