Php 改变了一点程序,不确定出了什么问题

Php 改变了一点程序,不确定出了什么问题,php,html,mysql,sql,Php,Html,Mysql,Sql,这只是我用来发送类别名称的一个小表单: <form action="insertexp.php" method="post"> Category Name: <input type="text" name="name"><br> <input type="submit"> </form> 类别名称: 以下是我的PHP代码: $name=$_POST["name"]; $dbhost="localhost"; $dbuser="g

这只是我用来发送类别名称的一个小表单:

<form action="insertexp.php" method="post">
Category Name: <input type="text" name="name"><br>
<input type="submit">
</form>

类别名称:
以下是我的PHP代码:

$name=$_POST["name"]; 
$dbhost="localhost";
$dbuser="guest";
$dbpsw="";
$dbname="expense";
$conn=mysqli_connect($dbhost,$dbuser,$dbpsw,$dbname);
        if(!$conn)
            die("couldnot open connection");
        echo"connected successfully";
        echo "<br>";

    $sql="INSERT INTO 'itemmaster' ('categoryname')
         VALUES ('$name')";                     


            $val=mysqli_query($conn,$sql);
            if(!$val)
                die("could not edit table");

            echo ("table edited successfully");

    mysqli_close($conn);
$name=$\u POST[“name”];
$dbhost=“localhost”;
$dbuser=“guest”;
$dbpsw=“”;
$dbname=“费用”;
$conn=mysqli_connect($dbhost、$dbuser、$dbpsw、$dbname);
如果(!$conn)
模具(“无法打开连接”);
echo“连接成功”;
回声“
”; $sql=“插入到“itemmaster”(“categoryname”)中 值(“$name”)”; $val=mysqli_查询($conn,$sql); 如果(!$val) 模具(“无法编辑表格”); echo(“表格编辑成功”); mysqli_close($conn);
我正在将表格发送到正确的命名页面。
程序只是不更新我的数据库,它一直在消亡。

'itemmaster'-这是文本而不是表名。必须使用backtick使其成为表名。与列相同:

 $sql="INSERT INTO `itemmaster` (`categoryname`)
         VALUES ('$name')"; 

您必须在查询中使用倒勾:

INSERT INTO `itemmaster` (`categoryname`)
     VALUES ('$name')"
另外,不要将var直接放在查询中,因为这容易受到sql注入的影响。使用
mysqli::real_escape_string()
或PDO准备的语句来清理输入。 此处为PDO文档:

将表和列名中的引号换行,改为使用backtick尝试使用prepared语句来避免sql注入您可以在表名中使用backtick,请将行$name=$\u POST[“name”];在连接详细信息后,Backticks“插入
itemmaster
categoryname
)值(“$name”)”;它仍然处于打开状态,无法编辑数据库:(尝试了各种可能的方法,但仍然没有解决方案!您也可以使用表名和列名而不使用反勾号。因此,显示db错误而不是什么都不告诉无法编辑表。使用
die(mysqli_error($conn))
@nospor谢谢!上面写着重复条目,不知怎的,我设置为自动递增的主键停止工作了。现在必须检查一下。:)但是记住,你在“”上也有错误。=记得使用backticks,因为我向你展示了使用mysqli_错误的方法,正如nospor所说的,然后发布错误