mysql - 更新否则插入 MySQL 查询

标签 mysql insert

您好,我昨天在这里遇到了这个问题,我真的不知道如何很好地使用这个网站,因为我是新人,所以我重新发布了。但我在这段代码中遇到错误,我认为它的更新查询包含语法错误。

//如果玩家记录已存在则更新

    $result = mysql_query("UPDATE PlayerStat SET Position='$POS', Number='$NUM', Name='$PlyrName', Status='$Status', TDS='$TDS', INT='$INT', YDS='$YDS', RTG='$RTG', Team='$Team' WHERE Name='$PlyrName'");
    echo mysql_error();
    if (mysql_affected_rows()==0){
        // Populates table if record is non existent
        $result = mysql_query("INSERT INTO PlayerStat(`Position`, `Number`, `Name`, `Status`, `TDS`, `INT`, `YDS`, `RTG`, `Team`) VALUES ('$POS','$NUM','$PlyrName','$Status','$TDS','$INT','$YDS','$RTG','$Team')");
        echo mysql_error();
    }

错误信息

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'INT='1', YDS='86', RTG='52.5', Team='ARI' WHERE Name='Bartel, Richard'' 附近使用的正确语法在第 1 行

最佳答案

INT 是 mysql 中的一个关键字(声明和整数),如果它是你的列名,你应该用反引号 (`) 括起来,如下所示:`INT`。

尽管并非在所有情况下都需要这些,但最好还是将它们放入

UPDATE
    PlayerStat
SET
    `Position` =  '$POS',
    `Number` = '$NUM',
    `Name` = '$PlyrName',
    `Status` = '$Status',
    `TDS` = '$TDS',
    `INT` = '$INT',
    `YDS` = '$YDS',
    `RTG` = '$RTG',
    `Team` = '$Team'
WHERE
    `Name` = '$PlyrName'

关于mysql - 更新否则插入 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320625/

相关文章:

mysql - 连接多个表时如何创建正确的 mysql 查询

sql - 有限制的分组,希望没有空集

mysql - 我无法在表中插入数据奇怪的错误mysql

php - 为什么我要使用 PHP 将 NULL 值插入到 MySQL 表中?

mysql - 对于此类问题,如何使用左连接编写 mySQL?

mysql - LOAD DATA LOCAL INFILE 跳过行而不发出警告

sql - 在 Access 中使用自动编号 - INSERT 语句

sql-server - 在批量插入查询中使用不可打印的字符(\0\n\t 除外)作为字段终止符参数

MySQL 错误消息 "#1064 - You have an error..."

mysql - 参数化 IReports,带有 LIKE 子句的 SQL 语句