“'字段列表中的未知列'

时间:2015-11-17 15:06:09

标签: php html mysql

你好这是我们班级的作业,我在我的数据库中插入一个名为userdb的数据时遇到了这个问题。我有一个表单接受3个字段:名称,主题和消息。在我的localhost / phpmyadmin中,我有一个名为data的表,它有5个字段:userID(自动增量)(int),name(varchar),subject(varchar),message(文本)和Timestamp(date)。当我向表单提交数据时,会弹出以下错误: 您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在#john!,15-11-17)'附近使用正确的语法。在第1行

    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

        Name : &nbsp&nbsp&nbsp<input type="text" name="name" /> <br>
        Subject : &nbsp<input type="text" name="subject" > <br> Message :  
        <br> <textarea name="message" type="text" style="width:200px; height:100px"></textarea> <br>
        <input type="submit" name="btnSubmit" />
    </form>

</div>


<?php
if($_POST) {
    $name = $_POST['name'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $date = date("y-m-d");


    $user = "jarvs";
    $pass = "strumandplay";
    $db="userdb";
    $conn = mysqli_connect("localhost", $user, $pass, $db);

    if(!mysqli_connect()){
        die("failed to connect to server " . mysqli_connect_error());
    }else{
        echo "connected" . "<br>";
    }

    $query = "INSERT INTO data (userID, Subject, Message, Timestamp) VALUES (1, $subject, $message, $date)";


    if (mysqli_query($conn, $query)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $query . "<br>" . mysqli_error($conn);
    }

    mysqli_close($conn);

}

?>

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

回显你的$ query var,看看有什么不对。 你会发现没有引用字符串:

这样做:

$query = "INSERT INTO data (userID, Subject, Message, Timestamp) VALUES (1, '$subject', '$message', '$date')";

下一步将转义$ subject,$ message和$ date,以便在脚本包含引号时不会崩溃。