Во-первых, как и все, кто видит mysql_query
говорит, использовать PDO. Однако для целей обучения mysql_query
просто отлично, но совершенно неприемлем на производственном сервере. Главным образом потому, что mysql_query
очень небезопасен. Это склонно к тому, что вы делаете как инъекции sql, которые могут действительно испортить сервер или даже дать доступ к хакерам. Как только вам станет удобно пользоваться PHP и MySQL, прочитайте над sql-инъекцией и обеспечьте свой код.
Возвращаясь к реальному вопросу, вы ничего не видите, потому что ваш запрос выбора полностью избит. Давайте сломаем его. Я только отступывал ваш запрос, чтобы мы могли подробно поговорить об этом.
SELECT
from login_logs
WHERE username = '".$_SESSION['user']['id'] ."username"
Есть пара вопросов с этим запросом.
- Вы не определяете, что хотите выбрать.
SELECT *
вернет каждую колонку. Однако, если вы просто считаете и не заботитесь о получении данных, вы можете использовать индексированный столбец, как поле id SELECT id
. Это повышает производительность. Возможно, то, что вы хотите прочитать позже.
- Ваше местонахождение в значительной степени бесполезно, добавив
"username"
. Предположим, что я зарегистрированный пользователь. Мое имя пользователя: khuderm
, поэтому $_SESSION['user']['id']
вернет khuderm
. Поэтому, если вы замените переменную моим именем пользователя, она станет WHERE username = 'khudermusername
, когда она должна просто искать khuderm
. Поэтому удаление будет частично устранять проблему. Кроме того, у вас отсутствует заключительная цитата, окружающая значение имени пользователя. Таким образом, вместо того, прилагая буквальное слово "username"
к фактическому вошли в систему имя пользователя пользователя, вы должны быть добавлением "'"
, чтобы закрыть эту цитату в начале WHERE username = '"
Если вы можете выполнить эти действия, вы должны быть в состоянии исправить ваш проблема. Легкий способ отладки MySQL-запросов в PHP - это повторить его, чтобы получить окончательный запрос с переменными и заполнить его. Поэтому в любом месте вашего кода эхо-сообщение "SELECT from login_logs WHERE username = '".$_SESSION['user']['id'] ."username"
покажет вам именно то, что отправлено в db для запросов. После этого запустите результат эха в phpmyadmin или workbench или что вы используете, чтобы посмотреть на db, и он должен сообщить вам, что не так с запросом.
Не забудьте ознакомиться с SQL-инъекциями, PDO и подготовленными операторами.Надеюсь, это было проницательное и счастливое кодирование!
Как выглядят данные? также, почему вы добавляете 'username' после фактического имени пользователя? вы сохраняете все имена пользователей, суффиксы с 'username'? Кроме того, вам нужно объявить, что вы хотите выбрать. вы должны посмотреть на свои журналы ошибок. – khuderm
Если я использую {имя_пользователя}, он указывает текущее имя пользователя, зарегистрированного в системе. Я пытаюсь подсчитать из таблицы, сколько времени имя пользователя есть от login_logs, чтобы подсчитать, сколько недопустимых логинов было. – Jashun
'WHERE username = '". $ _ SESSION [' user '] [' id ']. «Username» «Я имею в виду эту часть. Почему вы добавляете« имя пользователя »в конце' $ _SESSION [' user ' ] ['id'] '? Если бы у меня было имя пользователя на вашем сайте, вы сохранили бы его как' khudermusername', а не просто 'khuderm'? – khuderm