我能';t使用php将文本上传到Mysql

我能';t使用php将文本上传到Mysql,php,html,mysql,Php,Html,Mysql,我正在尝试创建一个评论板。这是我的表,由PHPMyAdmin创建 我将guestID设置为主键并自动递增,但每次我试图通过php输入新的来宾名称时,它只能创建一个具有新ID但没有名称的新列。 这是我的密码: <?php mysql_connect("localhost","root","root"); mysql_select_db("guest"); mysql_query("set names utf8"); $guestName=$_POST['guestName']; m

我正在尝试创建一个评论板。这是我的表,由PHPMyAdmin创建

我将guestID设置为主键并自动递增,但每次我试图通过php输入新的来宾名称时,它只能创建一个具有新ID但没有名称的新列。

这是我的密码:

<?php
mysql_connect("localhost","root","root");
mysql_select_db("guest");
mysql_query("set names utf8");

$guestName=$_POST['guestName'];


mysql_query("insert into guest value(`guestID`, `guestName`)");


?>
<!DOCTYPE html>


<body>
<div class="container">
<div class="top">
<h3>New comment</h3>
</div>
<form id="form1" name="form1" method="post" action="" class="form-horizontal">
    <div class="form-group">
        <label for="guestName" class="col-sm-4 control-label">Name:</label>
        <div class="col-sm-6">
            <input type="text" class="form-control" placeholder="guestName" name="guestName" id="guestName" />
        </div>


    <div class="button">
        <input type="submit" name="button" id="button" value="send" class="btn"/>
    </div>
</form>

新评论
姓名:

您没有将变量的值替换到查询中。值列表前的关键字是
,而不是

$guestName = mysql_real_escape_string($_POST['guestName']);

mysql_query("insert into guest (guestName) values ('$guestName')");
请注意,必须在字符串周围使用单引号,而不是反引号。看


您还应该升级到
mysqli
PDO
,并使用准备好的语句,而不是过时的
mysql
扩展。但是如果您使用的是
mysql
,则应该避开用户输入,以防止SQL注入。

您没有将变量的值替换到查询中。值列表前的关键字是
,而不是

$guestName = mysql_real_escape_string($_POST['guestName']);

mysql_query("insert into guest (guestName) values ('$guestName')");
请注意,必须在字符串周围使用单引号,而不是反引号。看


您还应该升级到
mysqli
PDO
,并使用准备好的语句,而不是过时的
mysql
扩展。但是如果您使用的是
mysql
,您应该避免用户输入以防止SQL注入。

因为您已经为guestID字段设置了主键和自动增量,所以不要在insert查询中使用它,因为当您插入新行时,它将自动获得增量值。您犯的另一个错误是,您没有传递列名

$guestName=$_POST['guestName'];


mysql_query("insert into guest (guestName) value(".$guestName.") ");

在上面提到的查询中,请注意有两个括号,第一个括号用于列名,按照相同的顺序,您需要写入值的括号。

因为您已经为guestID字段设置了主键和自动增量,所以不要在插入查询中使用它,因为插入新行时它将自动获得增量值。您犯的另一个错误是,您没有传递列名

$guestName=$_POST['guestName'];


mysql_query("insert into guest (guestName) value(".$guestName.") ");

在上面提到的查询中,请注意有两个括号,第一个括号用于列名,按照相同的顺序,您需要写入值的括号。

非常感谢您。括号是错误的。请看@seamaszhou,很乐意帮忙。你可以接受答案。是的@Barmar,我忘了移除它们。我刚刚更新了我的答案。现在它是错误的,因为字符串周围没有任何引号。非常感谢你。背景符号是错误的。请看@seamaszhou,很乐意帮忙。你可以接受答案。是的@Barmar,我忘了移除它们。我刚刚更新了我的答案。现在它错了,因为字符串周围没有引号。