如何将变量值存储到mysql数据库中


how to store variable value into mysql database

嘿,伙计们,我是php的新手,所以我需要你们的帮助。正如标题所说,我正在尝试将变量值存储到数据库表中。

这是我写的php代码,但它似乎不起作用。它似乎没有在数据库中存储任何值。

<?php
    // to connect to database 
    require("user_connection.php");
    $query = "INSERT INTO booked (date, computer_id, name, start_time, end_time) VALUES ('$date', '$select3', '$username', '$select1', '$select2')";
    mysqli_query($query);       
?>

你能帮我检查一下我的代码是否有问题吗。数据库表称为"booked",列为"date、computerid、name、starttime、endtime"。以下是页面的完整代码

<?php
    // starts a session and checks if the user is logged in
    error_reporting(E_ALL & ~E_NOTICE);
    session_start();
    if (isset($_SESSION['id'])) {
        $userId = $_SESSION['id'];
        $username = $_SESSION['username'];

    } else {
        header('Location: index.php');
        die();
    }   
?>

<!DOCTYPE html>
<html>
<body>

                        <!-- heading -->
        <div id="intro">Thankyou for booking a slot using the booking system.</div>

                        <!-- echo out information -->
        <div id="fonts">
        <h4>Below is the information of your booking:</h4>
            </br>
            </br>
        <b>Student Name:</b> <?php echo $username; // echo's name ?>
            </br>
            </br>

        <b>Room No:</b> <?php $room = $_SESSION['g'];
                echo $room; // echo's room ?>
            </br>
            </br>

        <b>Computer No:</b> <?php 
                $select3 = $_POST['bike'];
                echo  $select3;
                ?>
            </br>
            </br>

        <b>Date:</b> <?php $date = $_POST['datepicker']; 
                echo $date; // echo's date 
                ?>
        </br>
        </br>

        <b>Start Session and End Session:</b> <?php 
                if(isset($_POST['select1']) && isset($_POST['select2'])) {
                $select1 = $_POST['select1'];
                $select2 = $_POST['select2'];
                echo $select1;
                echo "";
                echo $select2;
                }
                else{
                echo "not set";
                }
                ?>
        </div>


        <?php
            // to connect to database 
            require("user_connection.php");
            $query = "INSERT INTO booked (date, computer_id, name, start_time, end_time) VALUES ('$date', '$select3', '$username', '$select1', '$select2')";
            mysqli_query($query);

        ?>



    </body>

    <footer>
        <p>Copyright © 2016 MyComputer &nbsp; | &nbsp; Contact information: <a href="mailto:gurungmadan@hotmail.com">gurungmadan@hotmail.com</a></p>
    </footer>
</html>

首先,我建议您使用PDO代替mysqli。你可以在这里和这里看到更多关于为什么的信息。

使用pdo方式,您的代码将得到如下结果:

    $sql = "INSERT INTO booked (date, computer_id, name, start_time, end_time) VALUES (?,?,?,?,?)";
    $data = array($date, $select3, $username, $select1 ,$select2);
    $sth = $this->_db->prepare($sql);
    $sth->execute($data);

通过使用prepare语句,可以保护您免受sql注入的影响。