2015-09-27 69 views
0

我的wampserver上有两个不同的目录,这个代码适用于一个,但不适用于另一个,我不明白为什么。为什么我不能通过我的php脚本“插入”我的表?

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但仍然,它不会工作。我尝试调整表中的名称,但是现在已经有了驼峰,但仍然没有任何区别。这段代码可以在另一个目录中完美工作,有人可以告诉我为什么会发生这种情况并可能提出解决方案吗?先谢谢你。

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(); 
} 

?> 
+0

你在哪里分配'$ _SESSION ['username']'? – user5173426

+0

'echo $ msg =“New class'”。 $ className。 “'补充说。”;'你看到了什么? – user5173426

+0

每次我点击“添加”我看到这个消息,其中$ className是我在输入中写入name =“className”的名称 –

回答

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=""空,在查询改为VALUEVALUES

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

+0

我试图插入到另一个表中使用相同的代码,它的工作,即时猜测它可能是因为到现在的表格,这两种表格类型都是“innoDB” –

+0

@sammourac是否将两种列类型作为具有给定长度的“text”使用,并且“排序规则”有什么不同? PS。如果它仍然看起来让你感到不安,并且让我知道它是如何发生的,你总是可以删除并创建一个新表。欢呼声;-)' – user5173426

相关问题