2

我在尝试将查询插入数据库时​​遇到了一些问题。我有这个 php 表单应该做一个插入查询,但没有任何反应,甚至没有错误。

这是一个具有以下形式的示例查询:

INSERT INTO FlashVideoList ('title', 'urltitle', 'description', 'tags', 'category', 'filename', 'filetype', 'size', 'uploadedbyuser', 'uploadtime') VALUES ('testtitle','testtitle','test','testtags','FlashVideo','SMILE!.swf','application/x-shockwave-flash','1007525','0','1339102426'); 

我回应了查询的内容来得到这个

这是php代码:

function MySqlQuery($Query)
{
    // Invokes global connection info
    global $MySQL_Host, $MySQL_Username, $MySQL_Password, $MySQL_Database, $MySQL_Port;
    global $mysqli;

    // runs query
    $result = $mysqli->query($Query);
    return $result;
}

$mysqli = new mysqli($MySQL_Host, $MySQL_Username, $MySQL_Password, $MySQL_Database, $MySQL_Port);

    MySqlQuery("INSERT INTO FlashVideoList ('title', 'urltitle', 'description', 'tags', 'category', 'filename', 'filetype', 'size', 'uploadedbyuser', 'uploadtime') " .
    "VALUES ('" . $mysqli->real_escape_string($_SESSION['Title']) . "','" . $mysqli->real_escape_string(GetUrlTitle()) . "','" . $mysqli->real_escape_string($_SESSION['Description']) . "','" .
    $mysqli->real_escape_string($_SESSION['Tags']) . "','" . $_SESSION['Category'] . "','" . $mysqli->real_escape_string($FlashFileName) . "','" . $mysqli->real_escape_string($_FILES["file"]["type"]) . "','" .
    $mysqli->real_escape_string($_FILES["file"]["size"]) . "','" . $mysqli->real_escape_string($UploadUserID) . "','" . time() . "');");

mysqli_free_result($result);
mysqli_close($mysqli);

任何帮助都非常感谢,感谢选择查询使用相同的代码可以正常工作

编辑:好吧,我已经取得了一些进展,似乎这段代码几乎所有可能的问题都是错误的:P 所以是的,这是我现在的查询:

INSERT INTO FlashVideoList (`title`, `urltitle`, `description`, `tags`, `category`, `filename`, `filetype`, `size`, `uploadedbyuser`, `uploadtime`) VALUES (`letitle`,`letitle`,``,`tagzz`,`FlashVideo`,`585336_pokemonsnewgrounds.swf`,`application/x-shockwave-flash`,`5058231`,`0`,`1339103842`); 

如果我直接通过navicat运行它,我会得到错误:

[Err] 1054 - Unknown column 'letitle' in 'field list'

有人知道我在做什么错吗?:/

4

3 回答 3

1

阅读错误信息。什么错误信息?好吧,这是另一个问题,但它会说明插入失败的原因1

评论中提到的一个(但可能不是唯一的)问题是它'不是有效的标识符引号,因此会导致解析错误。在 MySQL 中,默认值为,但如果使用ANSI 引号`,则可以更改(为) 。"

INSERT INTO FlashVideoList (`title`, ...)

1 这是 mysqli 的基本错误处理示例(滚动到底部)。基本思想是,如果query返回 FALSE 则某些事情失败并且error可以/应该咨询。

另外,我建议清理代码并摆脱“代理”函数调用。

于 2012-06-07T21:11:33.030 回答
1

用于msysqli_error()帮助找出错误

例如。mysqli_query($query) or die(mysqli_error());

于 2012-06-07T21:14:12.053 回答
0

为什么首先使用反引号(或单引号)?他们允许您使用保留字,但这不是我要宣传的内容。请改用合理的列名。

于 2012-06-07T21:38:23.977 回答