【问题标题】:Mysql error: Column count doesn't match value count at row 1; code appears to match suggestions of guides,Mysql 错误:列数与第 1 行的值数不匹配;代码似乎与指南的建议相匹配,
【发布时间】:2011-06-01 23:54:47
【问题描述】:

我正在为一个基于 mmo-rpg 游戏的小组制作网站,但我在他们的“命中列表”的插入表单上遇到了问题;我的代码如下:

function check_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}

$Pri = check_input($_GET['Pri']);
$Pir = check_input($_GET['Pir']);
$Lvl = check_input($_GET['Lvl']);
$XCd = check_input($_GET['XCd']);
$YCd = check_input($_GET['YCd']);
$Nts = mysql_real_escape_string(check_input($_GET['Nts']));
$Opl = check_input($_GET['Opl']);
$Kwl = check_input($_GET['Kwl']);
$Ktl = check_input($_GET['Ktl']);
$Tty = mysql_real_escape_string(check_input($_GET['Tty']));
$Grp = check_input($_GET['Grp']);

$sql="INSERT INTO modattacklist (`Id`, `Priority`, `Pirate`, `Level`, `KnownFltLvl`, `XCoord`, `YCoord`, `Notes`, `BaseLevel`, `KnownWallLvl`, `KnownTurretLvl`, `TurretTypes`, `BasePicture`, `Group`)
VALUES ('','$Pri','$Pir','$Lvl','$XCd','$YCd','$Nts','$Opl','$Kwl','$Ktl','$Tty','Coming Soon.','$Grp')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error() . ' ' . $sql);
  }

是的,我在别处看过,是的,这是查询的打印输出:

INSERT INTO modattacklist (`Id`, `Priority`, `Pirate`, `Level`, `KnownFltLvl`, `XCoord`, `YCoord`, `Notes`, `BaseLevel`, `KnownWallLvl`, `KnownTurretLvl`, `TurretTypes`, `BasePicture`, `Group`) VALUES ('','1','Eri','13','13751','408','?','?','?','?','?','Coming Soon.','Sector 23')

我真的不明白我做错了什么。 Id 是自动递增的,并且此查询在 phpMyAdmin 中有效

在这里真的会欣赏到一双新的眼睛。

【问题讨论】:

    标签: php mysql sql forms


    【解决方案1】:

    您只插入 13 个值,共有 14 列。缺少“KnownFltLvl”变量。

    INSERT INTO modattacklist (`Id`, `Priority`, `Pirate`, `Level`, `KnownFltLvl`, `XCoord`, `YCoord`, `Notes`, `BaseLevel`, `KnownWallLvl`, `KnownTurretLvl`, `TurretTypes`, `BasePicture`, `Group`)
    VALUES ('','$Pri','$Pir','$Lvl','$KnownFltLvl','$XCd','$YCd','$Nts','$Opl','$Kwl','$Ktl','$Tty','Coming Soon.','$Grp')
    

    如果您的表接受该列的空值,您可以将其从 INSERT 中一并删除。

    【讨论】:

    • 我认为你是对的,daedalus 错过了 $KnownFltLvl 值。
    • 做到了;我不敢相信我错过了。谢谢。
    【解决方案2】:

    如果仍然不起作用,请避免使用 id。

    INSERT INTO modattacklist ( `Priority`, `Pirate`, `Level`, `KnownFltLvl`, `XCoord`, `YCoord`, `Notes`, `BaseLevel`, `KnownWallLvl`, `KnownTurretLvl`, `TurretTypes`, `BasePicture`, `Group`)
    VALUES ('$Pri','$Pir','$Lvl','$KnownFltLvl','$XCd','$YCd','$Nts','$Opl','$Kwl','$Ktl','$Tty','Coming Soon.','$Grp')
    

    【讨论】:

      猜你喜欢
      • 2022-06-15
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多