簡體   English   中英

如何使用帶有mysqli和php的准備好的語句成功地將信息從表單插入數據庫?

[英]How do I successfully insert information from a form into a database using a prepared statement with mysqli and php?

我目前正在開發一個考試管理系統,該系統應該生成試卷,並從一堆問題中提取它們。 我從事插入問題功能的工作已經有一段時間了(老實說,幾天),但迄今為止沒有成功。

我正在使用的insert函數包含一個prepare語句,當我將其應用於從互聯網上獲得的一個簡單項目時,該語句成功運行。 數據庫完美更新。 但是,當在我自己的項目中應用相同的概念時,似乎什么也沒發生。

我確定它與SQL查詢無關,因為沒有彈出SQL錯誤。 我檢查了數據庫連接,語法,SQL查詢,並將其與正在運行的項目進行了比較,一切看起來都很好。 我是Php的新手,非常感謝您提供幫助以解決此問題。 提前致謝!

我正在使用PHP 7.0.2和Mysqli 2.4。 另外我正在為HTML使用bootstrap。

這是dbconnect.php的代碼

<?php
$con = mysqli_connect("localhost","root","","register");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
?>

insert.php頁面的代碼:

<?php
require('dbconnect.php');
include("auth.php");

$status = "";
if(isset($_POST['new']) && $_POST['new']==1){

    $trn_date = date("Y-m-d H:i:s");
    $question = $_REQUEST['question'];
    $answer1 = $_REQUEST['answer1'];
    $answer2 = $_REQUEST['answer2'];
    $answer3 = $_REQUEST['answer3'];
    $answer4 = $_REQUEST['answer4'];
    $submittedby = $_SESSION["username"];


$ins_query = "INSERT INTO mcquestions (`quest_desc`, `answ1`, `answ2`, `answ3`, `answ4`, `trn_date`, `submittedby`) 
VALUES (?, ?, ?, ?, ?, ?, ?);"; 

$stmt = mysqli_stmt_init($con);
if(!mysqli_stmt_prepare($stmt, $ins_query)) {
    echo "SQL Error";
} else {
    mysqli_stmt_bind_param($stmt, "sssssss", $question, $answer1, $answer2, $answer3, $answer4, $trn_date, 
        $submittedby);
    mysqli_stmt_execute($stmt);
}
    $status = "New Record Inserted Successfully. </br></br><a href='view.php'>View Inserted Record</a>";
}
?>

這是用於插入問題的HTML表單:

</head>
<div id="page-wrapper"> 
        <div class="row">
            <div class="col-lg-12">
                <h1 class="page-header">Questions</h1>
            </div>
           <!-- /.col-lg-12 -->
        </div>
      <!--   /.row --> 
        <div class="row">
            <div class="col-lg-12">
                <div class="panel panel-default">
                    <div class="panel-heading">
                        Basic Form Elements
                    </div>
                    <div class="panel-body">
                        <div class="row">
                            <div class="col-lg-6">
                              <form method="POST" action="insert.php">
                                <input type="hidden" name="new" value="1" />                               
                                    <div class="form-group">
                                        <label>Text area</label>
                                        <textarea type="textarea" class="form-control" rows="3" name="question" placeholder="Enter Question" required> </textarea>
                                    </div>
                                    <div class="form-group">

                                        <input type="text" class="form-control" placeholder="Enter First Answer" name="answer1"/>
                                    </div>
                                    <div class="form-group">

                                        <input type="text" class="form-control" placeholder="Enter Second Answer" name="answer2"/>
                                    </div>
                                    <div class="form-group">

                                        <input type="text" class="form-control" placeholder="Enter Third Answer" name="answer3"/>
                                    </div>
                                    <div class="form-group">

                                        <input type="text" class="form-control" placeholder="Enter Fourth Answer" name="answer4"/>
                                    </div>
                                    <div class="form-group">
                                        <input type="submit" name="submit" value="Submit"/>
                                    </div>
                                    <div><p style="color:#FF0000;"><?php //echo $status; ?></p></div>                                      
                                </form>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

首先,我沒有在您的html中獲得</head>
第二件事,您沒有在insert.php中開始會話。 在代碼頂部啟動它。

session_start();

並確保您正在初始化會話變量,例如$_SESSION["username"]='user1'
如果仍然無法正常工作,請確保您連接到正確/正確的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM