为什么我不能通过我的php脚本“插入”我的表格?

时间:2015-09-27 07:21:33

标签: php html mysql

我的wampserver上有两个不同的目录,这个代码在一个上工作,但在另一个上不起作用,我不明白为什么。

PHP

<?php

error_reporting(E_ALL & ~E_NOTICE);
session_start();

$msg = "";
if (!isset($_SESSION['username'])) {

    header('Location: login.php');
    die();

}

if(isset($_SESSION['username'])) {

    if (isset($_POST['submit']))
    {
        $className = $_POST['className'];
        $classColour = $_POST['classColour'];

        include_once("connection.php");
        $sql = "INSERT INTO class (className, classColour) VALUE ('$className', '$classColour')";
        mysqli_query($dbConnection, $sql);

        $msg = "New class '" . $className . "' added.";
    } else {
        $msg = "No class added yet.";
    }


}


?>

HTML

<form method="post" action="add_class.php">
                    <input type="text" name="className" placeholder="Class" />
                    <input type="text" name="classColour" placeholder="Colour" />
                    <div><input type="submit" name="submit" value="Add" class="btn butn-orange"/></div>
                </form>

这是在文件“add_class.php”中,我尝试了很多不同的东西,在$ sql中的表列周围添加单引号(`),但仍然无效。我已经尝试调整表中的名称,这些名称有下划线,但现在有了camelCasing,仍然没有区别。此代码在另一个目录中完美运行,有人可以告诉我为什么会发生这种情况并可能提出解决方案吗?提前谢谢。

P.S我的连接有效,因为我通过phpmyadmin插入了一个新行并通过数据库循环打印每个现有的“className”并且它工作正常,我无法从php脚本中插入。

connection.php

<?php

$dbConnection = mysqli_connect("localhost","root", "", "main");

if(mysqli_connect_errno())
{
    echo "Failed to connect" . mysqli_connect_error();
}

?>

1 个答案:

答案 0 :(得分:1)

当系统询问您是否已分配会话时,您回复了我在用户登录时分配了。从那开始,让我们假设分配的会话如下所示:

<?php

error_reporting(E_ALL & ~E_NOTICE);
session_start();
$_SESSION['username'] = "HawqasKaPujaari";

$msg = "";

// this fails, as session is already set.
if (!isset($_SESSION['username'])) {

    header('Location: login.php');
    die();

}

if(isset($_SESSION['username'])) {

    if (isset($_POST['submit']))
    {
        $className = $_POST['className'];
        $classColour = $_POST['classColour'];

        include_once("connection.php");
        $sql = "INSERT INTO class (className, classColour) VALUES ('$className', '$classColour')";
        mysqli_query($dbConnection, $sql);

       echo  $msg = "New class '" . $className . "' added.";
    } else {
        $msg = "No class added yet.";
    }


}


?>

<form method="post" action="">
                    <input type="text" name="className" placeholder="Class" />
                    <input type="text" name="classColour" placeholder="Colour" />
                    <div><input type="submit" name="submit" value="Add" class="btn butn-orange"/></div>
                </form>
  

注意:我所做的唯一更改是在您的查询中更改action=""为空并将VALUE更改为VALUES

connection.php:

<?php

$dbConnection = mysqli_connect("localhost","root", "", "main");

if(mysqli_connect_errno())
{
    echo "Failed to connect" . mysqli_connect_error();
}

?>

由于上面发布的代码似乎是正确的并且让我烦恼所以我想通过创建数据库/表来自己测试它并且它似乎正常工作而没有任何错误。我已在下面张贴了相关图片:

enter image description here

enter image description here

enter image description here

  

注意:确保您的connection.php文件相同   目录为add_class.php