MySQL Query не распознает переменную PHP

0

Я работаю над запросом SQL, который выбирает результаты на основе внешнего ключа идентификационного номера пользователя и отображает результат, если в сопоставленной таблице есть какие-либо совпадающие записи. Когда я пытаюсь использовать переменную PHP в своем предложении WHERE, создается впечатление, что SQL-запрос вообще не распознает значение, даже если я печатаю переменную, там есть значение.

Я попытался изменить запрос с помощью "'. $variable.'" И '. $variable. ' '. $variable. ' '. $variable. ', но я все еще получаю тот же результат. Вот мой код:

$usernum = intval($_SESSION['usernum']);
$query = "SELECT * FROM dinosaurs WHERE UserNum = '$usernum'"; 

Когда я ввожу переменную вручную (например, "SELECT * FROM dinosaurs WHERE UserNum = '6'"; она работает, но когда я пытаюсь выполнить этот запрос, я получаю следующий результат:

SELECT * FROM dinosaurs WHERE UserNum = ''
returned 0 records. 

Похоже, переменная просто показывает пустое значение в операторе SQL? Как мне заставить его распознавать значение переменной?

РЕДАКТИРОВАТЬ: РЕШЕНИЕ Я понял это! Это была глупая ошибка, когда я объявлял переменную внутри другой функции, а не глобально, поэтому я переместил объявление в правильную функцию следующим образом:

  // print_r($json);
  $usernum = intval($_SESSION['usernum']);
  }

Так что это говорит о том, что я должен уделять больше внимания своему собственному коду :)

  • 0
    Возможно, ваша сессия не началась.
  • 0
    вы открыты для внедрения SQL и должны немедленно обратиться
Показать ещё 6 комментариев
Теги:
mysqli

1 ответ

0

Вот мой оригинальный код:

session_start();

if (isset($_SESSION['username'])) {
    $firstname = htmlspecialchars($_SESSION['firstname']); 
    $usernum = intval($_SESSION['usernum']);
    $username = $_SESSION['username'];
} else echo "<script> window.location.assign('uhoh.html'); </script>";
require_once 'connect.php';
require_once 'pretty_json.php';

submitQuery($conn, $json);

$conn->close();

Я объявил переменную $usernum в оригинальном операторе if, а не глобально. Поэтому, когда я попытался получить к нему доступ в функции submitQuery, для нее ничего не было установлено.

Чтобы решить эту проблему, я просто объявил переменную $usernum в начале функции submitQuery.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню