Intereting Posts
Программное обеспечение форума ASP classic Crypt отличается от сервера, чем на локальной машине Есть ли какое-либо преимущество в области безопасности для шифрования переменных сеанса? Не удалось подключиться к почтовому серверу на порту «localhost» 25, проверьте свой «SMTP», Как включить изображение внутри другого изображения в PHP? Изменение общего количества и tax_total Woocommerce Настройка службы RESTful для Backbone.js с помощью apache и windows Исследуйте необработанные SQL-запросы в Laravel 4 Работа с __get () по ссылке Как удалить строку с помощью первичного ключа с использованием внешнего ключа из другой таблицы? с использованием завитка с простым хмльдом Использование die () для возврата значения ajax в PHP Форма отправляется без обновления с помощью jquery / ajax, если страница имеет более одной формы Методы API RESTful; ГОЛОВА И ВАРИАНТЫ codeigniter проблема с регистром

PHP / SQL, просто выберите, где получить «значение» как столбец

$account = "proot"; $sql_check_account = mysqli_query($connect, "SELECT username FROM proot_accounts WHERE username = $account"); if(!$sql_check_account) die(mysqli_error($connect)); 

Вернуть :

Неизвестный столбец 'proot' в 'where clause'

То же самое:

  $sql_check_account = mysqli_query($connect, 'SELECT username FROM proot_accounts WHERE username = "'.$account.'"'); 

Или

  $sql_check_account = mysqli_query($connect, "SELECT username FROM proot_accounts WHERE username =".$account); 

Что может сделать переменная $ account выполняться как столбец? У меня проблем нет здесь …

Благодаря !

Solutions Collecting From Web of "PHP / SQL, просто выберите, где получить «значение» как столбец"

Вам нужно поставить кавычки вокруг него.

 mysqli_query($connect, "SELECT username FROM proot_accounts WHERE username = '$account'"); 

Вы также должны изучить подготовленные инструкции SQL в PHP. Они сэкономит много этих головных болей.

Я думаю, что это кавычка. Эта:

 "SELECT username FROM proot_accounts WHERE username = $account" 

вы получите эту строку:

SELECT username FROM proot_accounts WHERE username = proot

В этом случае MySQL думает, что proot – это имя столбца, потому что proot вообще не в кавычках.

Эта:

 'SELECT username FROM proot_accounts WHERE username = "'.$account.'"' 

вы получите эту строку:

SELECT username FROM proot_accounts WHERE username = "proot"

В этом случае MySQL может по-прежнему думать, что «proot» – это имя столбца, в зависимости от режима SQL. Поскольку вы все еще получаете ту же ошибку при использовании этого кода, похоже, что ваша база данных установлена ​​в режим ANSI_QUOTES . В этом режиме текст внутри кавычек будет интерпретироваться как идентификатор столбца, а не буквальное значение.

Используя это:

 "SELECT username FROM proot_accounts WHERE username = '$account'" 

вы получите эту строку:

SELECT username FROM proot_accounts WHERE username = 'proot'

Использование ' вместо " должно гарантировать, что MySQL будет обрабатывать proot как литеральное значение вместо идентификатора столбца, независимо от режима SQL.