值未插入表中

时间:2012-02-17 06:53:19

标签: php mysql

我试图在php文件上传系统中将userid插入到我的表中。除了userid之外,其他任何值都正确插入.Heres代码:

<?php
session_start();

$userid = $_SESSION['id'];
$id1 = $_GET['id'];


include_once "connect_to_mysql.php";


function savedata(){
global $_FILES, $_POST, $putItAt;
$sql = "INSERT INTO files (
ID ,
userid ,
Time ,
FileLocation ,
IP ,
Title
)
VALUES (
NULL ,'$id1' , UNIX_TIMESTAMP( ) , '".mysql_real_escape_string($putItAt)."',   '".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_POST['title'])."'
);";
mysql_query($sql);


}

任何方式?

3 个答案:

答案 0 :(得分:3)

根据评论,我认为问题是$id1功能无法访问savedata()。所以你需要声明$id1全局内部函数或在你的sql-query中使用$_GET['id'],比如VALUES (NULL , " . $_GET['id'] . " , UNIX_TIMESTAMP( )

答案 1 :(得分:1)

可能出现的问题:

1。我认为问题是您在SQL查询中将$id1作为字符串传递,但我认为userid的数据类型为int。数据库结构。

尝试这样的事情:

$sql = "INSERT INTO files (
ID ,
userid ,
Time ,
FileLocation ,
IP ,
Title
)
VALUES (
NULL , " . $id1 . " , UNIX_TIMESTAMP( ) , '".mysql_real_escape_string($putItAt)."',   '".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_POST['title'])."'
);";


2。您还需要检查要插入数据库的userid

$userid = $_SESSION['id'];
$id1 = $_GET['id'];

3。同时print_r( $_SESSION );print_r( $_GET );检查数组中是否存在必需的值。

4。同时阅读我在阅读您的代码时遗漏的Den's Answer

所以你的函数签名可能是这样的:

function savedata( $id1 ) {
  ------
}

在调用时将$id1传递给savedata

答案 2 :(得分:0)

尝试使用此查询。它可能适合你。

$ sql =“INSERT INTO文件(IDuseridTimeFileLocationIPTitle) VALUES(NULL,'$ id1',UNIX_TIMESTAMP(),'“。mysql_real_escape_string($ putItAt)。”','“。$ _ SERVER ['REMOTE_ADDR']。”','“。mysql_real_escape_string($ _ POST ['title' ])。“” )“;

有些时候因为mysql的reserve关键字会导致这种问题。所以尝试使用`之前和之后或字段名称。