php表单提交没有插入到数据库中

标签 php mysql forms

是的,这应该是非常基本的 php,但我终究无法弄清楚为什么它不起作用。

我有一个表单,在提交时它应该抓取字段然后将数据插入数据库。我在我的 index.php 上有一个部分,它实际上从数据库中提取信息并且工作正常,所以我看不出这是一个连接问题。

db_connection.php 我已经将这里的信息散列为我的数据库,但一切都是正确的

<?php
define("DB_SERVER","**********");
define("DB_USER","*************");
define("DB_PASS","*********");
define("DB_NAME","reviews");

$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS,DB_NAME);

if(mysqli_connect_errno()){
    die("database connection failed");
}


?>

函数.php

<?php
function redirect_to($new_location) {
      header("Location: " . $new_location);
      exit;
    }    
function confirm_query($result){
    if(!$result){
        die("database query failed");
    }
}
function find_reviews($connection){
    $query  = "SELECT * ";
    $query .= "FROM reviews";
    $result = mysqli_query($connection,$query);
    confirm_query($result);
    while($reviews = mysqli_fetch_assoc($result)){
        $output = "<li class=\"first\">";
        $output .= $reviews["name"];
        $output .= "</li>";
        $output .= "<li class=\"second\">";
        $output .= $reviews["company"];
        $output .= "</li>";
        $output .= "<li class=\"third\">";
        $output .= $reviews["comment"];
        $output .= "</li>";
        $output .= "<li class=\"line\"></li>";     
        echo $output;
    }
    mysqli_free_result($result);

    return $reviews;
}
?>

index.php 需要注意的是,函数 find_reviews() 起作用并确实从数据库中获取信息。 index.php 中还需要上面的“db_connection.php”和“functions.php”

<?php
require("includes/header.php");
$page_title = "All County Road Markings";
$description = "Specialising in Road Marking & Car Park Lining. We are a professional established road marking service with over 20 years experience";?>
<?php require("includes/db_connection.php"); ?>
<?php require("includes/functions.php"); ?>

<?php if(isset($_POST["submit"])){
    $name = $_POST["name"];
    $company = $_POST["company"];
    $comment = $_POST["comment"];
    $query = "INSERT INTO `reviews` (name,company,comment) VALUES ('$name','$company','$comment')";

    $result=mysqli_query($connection,$query);
    confirm_query($result);
    redirect_to("index.php");
}
?>
<div id="banner"></div>
<div id="paragraph">
    <h2>All County Road Markings are a professional established road marking<br>service with over 20 years experience within the industry</h2>
    <hr style="width: 1050px;">
</div>
<div id="content">
    <div id="left">
        <div class="slot">
            <div class="top carpark"> </div>
            <div class="linkbar">
                <h1>Car Parks</h1>
            </div><div class="linktext">
                <ul class="comments display">
                    <li>- Car Parking Bays</li>
                    <li>- Disabled Parking Bays</li>
                    <li>- Parent and Child Bays</li>
                    <li>- Lettering</li>
                    <li>- Hatchings</li>
                    <li>- Arrows</li>
                    <li>- Customised Lettering</li>
                </ul>
            </div>
        </div>
        <div class="slot">
            <div class="top roadmark"> </div>
            <div class="linkbar">
                <h1>Road Markings</h1>
            </div>
            <div class="linktext">
                <ul class="comments display">
                    <li>- Hatchings</li>
                    <li>- Centre Lines</li>
                    <li>- Double Yellow lines</li>
                    <li>- Give way junctions</li>
                    <li>- Reinstatement of existing markings</li>
                </ul>
            </div>
        </div>
        <div class="slot">
            <div class="top sportcourt">
            </div>
            <div class="linkbar">
                <h1>Sports/Playground Court</h1>
            </div>
            <div class="linktext">
                <ul class="comments display">
                    <li>- Tennis Court</li>
                    <li>- Basketball Court</li>
                    <li>- 5 A side Court</li>
                    <li>- Netball Court </li>
                    <li>- Reinstatement of existing markings</li>
                    <li>- Custom designs available</li>
                </ul>
            </div>
        </div>
    </div>
    <div id="right">
        <div id="rightbar">
            <h2 style="color: white;">Testimonials</h2>
        </div>
        <div id="comment">
            <ul class="comments">
                <?php echo find_reviews($connection); ?>
            </ul>
        </div>
        <div id="write">
            <p style="margin: 0px; padding-top: 5px;color: grey; font-size: 1.25em;">Click to write a review...<p>
        </div>
    </div>
    <a href="contact.php"><div id="quote"><div class="link-text">contact us</div></div></a>
</div>
<div id="add">
    <div id="close"></div>
    <form action="index.php" method="POST">
        <div id="name"> Name:<br/><span>Please Enter Full Name</span>
            <input type="text" name="name" id="textbox">
        </div>
        <div id="company"> Company<br/><span>Please Enter Company Name</span>
            <input type="text" name="company" id="textbox1">
        </div>
        <div id="review"> Review<br/><span>Please Enter Review</span>
            <textarea name="comment" id="reviewComment"></textarea>
        </div>
        <div id="save">
            <input type="submit" name="submit">
        </div>
    </form>
</div>
</body>
</html>

好的,所以有人能看出我做错了什么吗?因为当提交表单时,它只是没有插入到数据库中。

编辑::

当我尝试 echo mysqli->error;我收到以下错误:

 Parse error: syntax error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in /hermes/bosoraweb140/b484/ipg.allcountyroadmarking/index.php on line 17 

所以我改成了

if(!results){
     echo "hello";
}

而且我没有看到“你好”所以这表明我什至没有进入它处理帖子字段的部分

自行解决:::::

我修复了它,我将 action="index.php"更改为 action=""

我不明白,它应该有效,但由于某种原因,空白操作有效。两者都应该是可以接受的!

最佳答案

$_POST['submint'] 的 if 语句在每次提交时都可能为假。也许试试 !empty($_POST)

关于php表单提交没有插入到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29869566/

相关文章:

PHP - Mysql 选择与或

PHP echo 相当于记事本的CR LF

php - 使用 php 和 mysql 的搜索引擎无法检索带有希腊字符的数据

javascript - 在 Parse.com 上注册 JS jQuery

php - 检查行是否存在,Laravel

mysql - EclipseLink (JPA 2.1) 查询未返回明显应该返回的结果

php - URL从id重写为标题

javascript - 无法将表单提交到 PHP 脚本

java - 从动态生成的 JSP 表中获取所有选中的复选框值到 servlet?

php - Bootstrap Nav 不切换; .php 文件在单独的文件夹中