использование переменной, содержащей значение, для столбца

#php #mysql #sql

#php #mysql #sql

Вопрос:

Что не так с этим запросом? Например $brand , содержит значение apple , после чего я получаю сообщение об ошибке unknown column 'apple'

Кто-нибудь может увидеть проблему?

 if(isset($_GET['brand']) ? $_GET['brand'] : 0) {
   $brand = (isset($_GET['brand']) ? $_GET['brand'] : 0);
   $sql = mysqli_query($link, "SELECT COUNT(id) FROM products WHERE brand = $brand  AND 
                       status = 1 ORDER BY id DESC")
    OR die(mysqli_error($link));
 

Редактировать:
С проверкой ошибок

 error_reporting(E_ALL); ini_set('display_errors', 1);   
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
 

Я получаю эту ошибку
‘Неустранимая ошибка: неперехваченное исключение ‘mysqli_sql_exception’ с сообщением ‘Неизвестный столбец ‘apple’ в ‘where предложение»‘

Комментарии:

1. сделайте WHERE brand = '$brand' или WHERE brand = '".$brand."' и убедитесь, что у вас есть колонка под названием «бренд».

2. Вы уязвимы для атак с использованием SQL-инъекций , и вам также необходимо изучить базовый синтаксис SQL.

3. я все еще получаю сообщение об ошибке

4. «‘.бренд в размере $. ‘» Использовать конкатенацию

5. Что ж, тогда у вас нет колонки с названием «apple» (или бренд), не так ли? Убедитесь, что у вас также нет пробела в имени столбца.

Ответ №1:

Попробуйте это:

 if(isset($_GET['brand'])) 
{
   $brand = $_GET['brand'];
   $sql = mysqli_query($link, "SELECT COUNT(id) FROM products WHERE brand = {$brand}  AND 
                   status = 1 ORDER BY id DESC")
   OR die(mysqli_error($link));
}
 

Комментарии:

1. Все то же самое. Я отредактировал свой вопрос с некоторыми сообщениями об ошибках, если это что-то прояснит………….