向数据库添加记录的php代码

向数据库添加记录的php代码,php,mysql,Php,Mysql,我正在为一个网站的控制面板(管理页面)工作。所有页面都有相同的代码,数据库表名和列几乎没有变化。所有这些都很好,但一页不起作用 这是它的代码 <?php include('connect.php'); // read the input data $KTitle = $_POST['Title']; $Kcontent = $_POST['content']; $ImgName = $_FILES["file"]["name"]; //get img extension $Img

我正在为一个网站的控制面板(管理页面)工作。所有页面都有相同的代码,数据库表名和列几乎没有变化。所有这些都很好,但一页不起作用

这是它的代码

<?php
include('connect.php');

// read the input data
$KTitle   = $_POST['Title'];
$Kcontent = $_POST['content'];
$ImgName  = $_FILES["file"]["name"];

//get img extension
$ImgExtension = substr($ImgName, (strlen($ImgName) - 4), strlen($ImgName));
//check if it Gif, Bng, Jpg
if ($ImgExtension == ".gif" || $ImgExtension == ".jpg" || $ImgExtension == ".png")
{ //get img name to rename it then readd the extinsion
    $ImgName      = substr($ImgName, 0, (strlen($ImgName) - 4));
    $storyImgName = $ImgName . "_" . $Title;
    $target       = "../CharacterImgs/" . $storyImgName . $ImgExtension;
    $target       = str_replace(" ", "_", $target);

    move_uploaded_file($_FILES['file']['tmp_name'], $target);
    mysql_query("INSERT INTO CharactersN (name,desc,img) VALUES ('$KTitle', '$Kcontent','$target')");

    echo "<meta http-equiv=\"refresh\" content=\"3;URL=AddCharacterForm.php\">";
}
?>

如果在MySQL中使用
desc
作为列名,则必须将其用倒勾括起来,因为它是一个字符串


您在这里遇到了一个问题:

INSERT INTO CharactersN (name,desc,img)
desc
是一个保留字,因此必须使用`符号,如下所示:

INSERT INTO CharactersN (`name`,`desc`,`img`)
每次对字段名使用这种表示法是一种很好的做法(或者在数据库设计中不要对字段名使用保留字)


另外,请阅读,因为您的代码表明您没有意识到这一点。您正在向查询中插入来自外部的值(本例中为POST)

您应该首先使用或更好地使用数据库交互来转义这些值


中,您可以发布您得到的错误吗?我希望您知道您的代码中有SQL注入?请使用过时的
mysql.*
函数,学习如何使用和准备语句。这是一个小问题,但是
$KTitle=$\u POST['Title']
可能应该是
$KTitle=$\u POST['title'](除非您以
&title=
而不是标准的
&title=
发送标题)。不起作用?什么是不起作用的?有人可能会反驳说,“停止使用reserver works作为字段名”是一种更好的做法。@tereško我不想就此展开评论战,但对于一个可能碰巧不知道所有保留字的无经验用户来说,使用正确的符号似乎更好。不过,我还是把你的评论编辑成了我的答案。同意。另一方面:
mysql\u escape\u string()
已被弃用。他们现在有了
mysql\u real\u escape\u string()
。。这只是mysql有多老的另一个标志。你应该编辑一下答案。@tereško谢谢,那实际上是一个打字错误。在使用PDO之前,我更习惯于键入它:)。
INSERT INTO CharactersN (`name`,`desc`,`img`)
VALUES ('$KTitle', '$Kcontent','$target')")