Правильный sql запрос не дал результатов с переменной php - PullRequest
0 голосов
/ 30 апреля 2020

Когда переменная $ selectedname заменяется на "test", запрос выводит правильные данные. Когда используется переменная $ selectedname , переменная var_dump показывает

Выход Var_dump enter image description here

База данных Таблица

enter image description here

Код

  <?php
        echo "Selected Location";
?>
<br>
<?php
        $selectedname = $_POST['LocationName'];
        echo $selectedname;
?>
<br>
<?php
        require_once 'config.php';

        $sql = "SELECT Locationid, LocationName, Description FROM Location Where LocationName= '".$selectedname."' ";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            // output data of row
            while($row = $result->fetch_assoc()) {
                echo " id: " . $row["Locationid"]. " Name : " . $row["LocationName"]. " Description :" . $row["Description"]. "<br>";
            }
        } else {
            echo "0 results";
            ?> <br> <?php
            var_dump($sql);
        }


        ?>

Примечание

  1. Я безуспешно пытался заключить переменную $ selectedname различными способами.
  2. Я знаю, что в настоящее время она уязвима для SQL инъекций.
  3. $ selectedname = $ post _ ['locationName'] извлекается из базы данных на предыдущей странице. Так что должно соответствовать идеально.

Вопрос

  1. Почему не работает запрос, когда жесткий код заменяется переменной, и как я могу это исправить?

Обновление !!!

Я удалил пробелы из переменной, используя $ selectedname = preg_replace ('/ \ s + /', '', $ _POST [' LocationName ']);

, который решил проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...