我无法让INSERT工作

时间:2011-04-28 09:15:50

标签: php mysql

我一直用这个把头撞到墙上:

  1. 获取POST值到数组..
  2. 选择外键..
  3. 其他一些INSERT操作
  4. $insertdates = "INSERT INTO dates (asid,acq_date, serv_guaranteedate
                   , maintenance_period, expiration_date) 
                   VALUES ('$foreignkey','$uservalues[1]'
                   ,'$uservalues[4]','$uservalues[5]','$uservalues[3]')";
    $upsdasult= mysql_query($insertdates);
    

    在insert和$ foreignkey格式正确之前,所有值的格式都是正确的。 (我已经在插入语句之前回显了值) 该操作成功运行,但是当我查看数据库时,没有插入任何内容。

    有人可以告诉我我做错了什么吗?

6 个答案:

答案 0 :(得分:3)

您必须使用花括号来嵌入数组变量:

echo "This is an {$array['value']}";

答案 1 :(得分:1)

使用

    $insertdates = "INSERT INTO dates (asid,acq_date, serv_guaranteedate, 
    maintenance_period, expiration_date) 
    VALUES ('".$foreignkey."','".$uservalues['1']."','".$uservalues['4'].
    "','".$uservalues['5']."','".$uservalues['3']."')";
    $upsdasult= mysql_query($insertdates);

答案 2 :(得分:0)

如果你这样做

$insertdates = "INSERT INTO dates (asid,acq_date, serv_guaranteedate
  , maintenance_period, expiration_date) 
  VALUES ('$foreignkey','$uservalues[1]','$uservalues[4]'
  ,'$uservalues[5]','$uservalues[3]')";
$upsdasult= mysql_query($insertdates);
if (!$upsdasult)
{
  die(mysql_errno($link) . ": " . mysql_error($link). "\n");
}

它可能不喜欢键或日期格式,但这会告诉你。

答案 3 :(得分:0)

  1. 检查$ _POST值

  2. 尝试此查询:

    $query = sprintf("INSERT INTO dates set 
    
                         asid = '%s',
                         acq_date = '%s',
                         serv_guaranteedate = '%s',
                         maintenance_period = '%s',
                         expiration_date = '%s'",
                         mysql_real_escape_string($foreignkey),
                         mysql_real_escape_string($uservalues[1]),
                         mysql_real_escape_string($uservalues[4]),
                         mysql_real_escape_string($uservalues[5]),
                         mysql_real_escape_string($uservalues[3])
                     );
    

    $ result = mysql_query($ query);

    if($result) { echo 'success'; } else { echo mysql_error(); }
    

答案 4 :(得分:0)

将mysql_error()留空.....使用以下代码....

$upsdasult= mysql_query($insertdates) or die(mysql_error());

你不需要剩下的代码......

我认为您已从此页http://php.net/manual/en/function.mysql-error.php复制了相同的查询。但是mysql_error会为你打印错误代码....

请尝试这个,让我知道这是你正在寻找的......

答案 5 :(得分:-1)

不是你的FK值应该是整数而不是字符串吗?如果您不使用'$foreignkey'但仅使用$foreignkey

,那该怎么办?