«Нет результата» при попытке извлечь имена из базы данных

0

Хорошо, так как вы можете видеть, я сделал форму. Если я вложу имя и фамилию и попытаюсь отобразить ее после этого, это будет работать, но это будет не так, когда я попытаюсь "отправить" его в базу данных и получить ее. Это дает мне "никакого результата". Поскольку я довольно новичок в этом, я не знаю, что я сделал не так. Кто-нибудь видит проблему здесь?

    //Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    //Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }


    echo "<form action='' method='post'>
    Naam: <input type='text' name='name'><br>
    Achternaam: <input type='text' name='surname'><br>
    <input type='submit'>
    </form>";

    $name = $_POST["name"];
    $surname = $_POST["surname"];

    //insert name
    $sql = "INSERT INTO Namen
    VALUES ($name, $surname)";
    $result = $conn->query($sql);


    if(!$result){
     echo "fout ".mysql_error();   

    }

    $sql = "SELECT Voornaam, Achternaam FROM Namen";
    $result = $conn->query($sql);

    echo "<table border='1px'>";
    echo "<th>Naam</th>";
    echo "<th>Achternaam</th>";
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "<tr><td>" .$row["Voornaam"] . "</td>";
            echo "<td>" . $row["Achternaam"] . "</td></tr>";
        }
    } else {
        echo "0 results";
    }
    echo "</table>";
    $conn->close();
    ?>
Теги:
database
sql-insert

1 ответ

1
Лучший ответ

Переменные ваших значений VALUES ($name, $surname) должны быть инкапсулированы внутри кавычек, так как мы (более чем вероятно) имеем дело со строками.

Измените его на VALUES ('$name', '$surname')

Вы также смешиваете (они не смешиваются) MySQL API с echo "fout ".mysql_error(); который должен быть изменен на echo "fout ".mysqli_error($conn); для получения фактической ошибки.

Кроме того, ваш текущий код открыт для SQL-инъекции.
Используйте подготовленные заявления или PDO с подготовленными заявлениями, они намного безопаснее.


Вы также должны рассмотреть возможность переноса вашего кода (или того, который вы хотите выполнить) внутри условного оператора на основе именованной кнопки отправки.

То есть:

<input type='submit' name='submit' value='Submit'>

затем делать

if(isset($_POST['submit'])){...}

{...} является вашим первоначальным запросом и/или всей (или частью) вашего кода PHP/SQL.

Ещё вопросы

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