php - 表单提交时的MySQL错误

标签 php mysql syntax-error

更新:

非常感谢大家对此的帮助。我采取了不同的策略并决定 只使用一张 table 。


我有一个由 3 个表组成的数据库。我有三个简短的表单,我想使用相同的 add_player.php 将表单数据写入数据库。

根据提交的表单(我在每个表单中都有一个定义 form_id 的隐藏字段),数据将写入三个表之一:ff_offense、ff_kicker、ff_defense。

我收到意外的 } 错误。我知道我的语法不对,但我对 PHP 不够精通,无法找出罪魁祸首。这是 add_player.php 的代码:

<?php
$con = mysql_connect("localhost","dariia","celtic03");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("football", $con);

if($form_id ="offense") {$query="INSERT INTO ff_offense (ID, PLAYER, POSITION, TEAM, PASS_YDS, RUSH_YDS, REC_YDS, RECEPTIONS, TD) 
    VALUES ('NULL','$_POST[PLAYER]','$_POST[POSITION]','$_POST[TEAM]','$_POST[PASS_YDS]','$_POST[RUSH_YDS]','$_POST[REC_YDS]','$_POST[RECEPTIONS]','$_POST[TD]')"}

    elseif($form_id="kicker") {$query="INSERT INTO ff_kicker {K_ID, K_PLAYER, K_TEAM, K_EXTRA_PTS, K_FG)
        VALUES ('NULL','$_POST[K_PLAYER]','$_POST[K_TEAM]','$_POST[K_EXTRA_PTS]','$_POST[K_FG]')"}

    elseif($form_id="defense")  { $query= "INSERT INTO ff_defense {D_ID, D_TEAM, D_SACKS, D_INT, D_TD}
        VALUES ('NULL','$_POST[D_TEAM]','$_POST[D_SACKS]','$_POST[D_INT]','$_POST[D_TD]')"} ;

$db->setQuery($query);
$db->query();   

if (!mysql_query($query,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con);
?>

错误发生在第 11 行,这对于 if($form_id="offense") 来说是 VALUES 行。

最佳答案

更新

您在查询中使用大括号而不是圆括号。

 $query="INSERT INTO ff_kicker {K_ID, K_PLAYER, K_TEAM, K_EXTRA_PTS, K_FG)

应该是

 $query="INSERT INTO ff_kicker (K_ID, K_PLAYER, K_TEAM, K_EXTRA_PTS, K_FG)

你做了很多次,所以检查你所有的查询是否有这个错误。

旧答案

您应该使用比较运算符(=====)而不是赋值运算符:

if($form_id="offense")

应该是

if($form_id==="offense")

注意两点:

  1. 您对 SQL 注入(inject)持开放态度
  2. mysql_* 将被弃用。你应该切换到 mysqli_*PDO .

关于php - 表单提交时的MySQL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638946/

相关文章:

php - 使用 PHP 从 MySQL 打印两个日期之间的 Y-m-d 业务日期列表

php - 如何在 Laravel 中应用 Mysql AND/OR 子句

php - 将所有产品和类别树复制到不同的 Magento 安装

php - 无法向数据库添加记录

python - Python 打印语句中的语法错误

php - Eclipse PDT - 文件系统更改或新的 Composer 自动加载路径会破坏自动加载器

php - 运行 showdown.js 服务器端将 Markdown 转换为 HTML(在 PHP 中)

c# - 在 C# 依赖项中使用 MySQLConnector

java - 使用 mysql 连接器 8 针对服务器 5.6.22 保存表情符号

c# - Access插入数据库时​​出现SQL语法错误