У меня проблема с функциями "ADD" и "INSERT" в базе данных - PullRequest
0 голосов
/ 10 января 2019

Я хочу спросить вас, как я могу исправить этот код? У меня проблема с функциями "ADD" и "INSERT" в базе данных. Я могу только удалить из базы данных, но функции «добавить и вставить» ничего не делают.

это мой файл about.php.

    $mode = 'add';
$about = '';

if(isset($_GET['edit']) && is_numeric($_GET['edit'])){

    $sql = "SELECT * FROM `about_me` WHERE `about_me`.`id` =".$_GET['edit'];
    $result_about = mysqli_query($conn, $sql);
    if(mysqli_num_rows($result_about) == 1) {
        $mode = 'edit';

        $about = mysqli_fetch_assoc($result_about);
    }
}

$apie = '';    
if(isset($_POST["submit"])){         
    if(isset($_POST["apie"])){           
        $apie = trim($_POST["apie"]);   
    }

}
elseif($mode=='edit') {
    $apie = $about['about'];
}

if($mode=='add') {
    if(($apie!='')){
        $sql = 'INSERT INTO about_me(about)
        VALUES ("'.$apie.'")';
        mysqli_query($conn, $sql);
        header('Location:about.php');
        die();
    }
}
elseif($mode=='edit') {
    if(($apie!='')){
    $sql = "UPDATE `about_me` SET `about` = '".$apie."' WHERE `about_me`.`id` = ".$_GET['edit'];    
    mysqli_query($conn, $sql) ;

    }
}

<..>

            <input type = "text" name = "apie" value = "<?php echo $apie; ?>">

            <br><br>
            <input type = "submit" name = "submit" value = "Gerai">
            <br><br>

Я проверил ошибку mysql с https://www.w3schools.com/php/func_mysqli_error.asp, и затем вставил ее в мою БД. Я думаю, что есть кодовый фол, но я не знаю где.

1 Ответ

0 голосов
/ 10 января 2019

У вас небольшая ошибка в первом запросе, вы не можете использовать скобки рядом с селектором базы данных, я бы порекомендовал создать отдельный файл с подключением к базе данных, который можно назвать $conn, ваш первый запрос должно выглядеть так:

    $sql = "INSERT INTO about_me
        VALUES (?)";

Кроме того, вы должны смотреть в подготовленные операторы для ваших запросов, вместо того, чтобы вставлять их напрямую, вы используете вопросительный знак ?, к которому привязываете параметр / параметры. Это помогает предотвратить инъекции SQL!

Надеюсь, это поможет! :)

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