Php 无法更新SQL数据库

Php 无法更新SQL数据库,php,mysql,sql-update,Php,Mysql,Sql Update,所以我创建了一个编辑个人资料页面,一切都很顺利。但后来我想用类似的代码来更新数据库中的另一个东西。这是一个非常奇怪的错误,因为当我添加许多需要更新的值时,它拒绝工作 <?php session_start(); if(isset($_POST['submit'])){ $Creator = $_SESSION['username']; $dbName = $_POST['Name']; $dbBase_damage = $_POST['Base_damage']; $dbDamage

所以我创建了一个编辑个人资料页面,一切都很顺利。但后来我想用类似的代码来更新数据库中的另一个东西。这是一个非常奇怪的错误,因为当我添加许多需要更新的值时,它拒绝工作

<?php

session_start();

if(isset($_POST['submit'])){
$Creator = $_SESSION['username'];
$dbName = $_POST['Name'];
$dbBase_damage = $_POST['Base_damage'];
$dbDamage = $_POST['Damage'];
$dbPellets = $_POST['Pellets'];
$dbAttackspeed = $_POST['Attackspeed'];
$dbRS = $_POST['RS(first)'];
$dbRS2 = $_POST['RS(consecutive)'];
$dbLoaded = $_POST['Loaded'];
$dbReserve = $_POST['Reserve'];
$dbCritical = $_POST['Critical'];
$dbAbility = $_POST['Ability'];
$dbPiece_set = $_POST['Piece_set'];
$dbBonus_set = $_POST['Bonus_set'];
$dbDescription = $_POST['Description'];

if ($dbName && $dbBase_damage && $dbDamage && $dbAttackspeed && $dbLoaded && $dbCritical) {

mysql_connect ("localhost", "root", "") or die ("Could not connect");
mysql_select_db("weapons") or die ("Could not connect to the database");    

$wepquery = mysql_query("SELECT * FROM weapon WHERE Creator='$Creator' AND Name='$dbName'") or die ("The query could not be completed, please try again later!");
if (mysql_num_rows($wepquery) != 0) {

mysql_query ("

UPDATE weapon SET Base_Damage='$dbBase_damage', Damage='$dbDamage', 
Pellets='$dbPellets', Attackspeed='$dbAttackspeed', RS(first)='$dbRS', RS(consecutive)='$dbRS2', 
Loaded='$dbLoaded', Reserve='$dbReserve', Critical='$dbCritical', Ability='$dbAbility', Piece_set='$dbPiece_set', 
Bonus_set='$dbBonus_set' Description='$dbDescription' WHERE Creator='$Creator' AND Name='$dbName'

") or die ("Could not update!");
echo "It just werks!";

}else echo ("That username could not be found!");
}else echo ("Something went wrong!"); 
    }
    ?>

我猜您的if语句不可读,这就是您无法更新的原因

  • 首先,你的名字与你的变量索引不一样
应该是

    $dbBase_Damage = $_POST['Base_damage']; // with small d
试着重新保存这个

     if ($dbName && $dbBase_Damage && $dbDamage && $dbAttackspeed && $dbLoaded && $dbCritical)
编辑:

在您的查询中,替换此

     RS(first)='$dbRS', RS(consecutive)='$dbRS2'

EDIT2:

请更换

      or die ("Could not update!");

EDIT3.

     Bonus_set='$dbBonus_set' , Description=
                             ^^//you missed coma here

第一件事是,您绝对应该停止使用mysql_uu命令,因为它们在不久的将来将被删除。因此,您从查询中得到一个错误,但是当您编辑查询时,它会工作吗?听起来查询要么有语法错误,要么引用了不存在的数据库对象。设置查询的可读性格式并显示数据库表的结构。1)发布表结构2)这可能是区分大小写的问题,请在“-sYou OU OU OU OU SEQUIRING
$\u Post['Base\u Damage']”中包含字段名称。
。您的表单将其命名为
Base\u damage
。PHP对变量名是区分大小写的。你没有收到任何消息或错误吗?因为有人调用了
草莓
来判断和重新评价他人的声誉。发布你的答案并获得声誉。别再谈论别人的名声了。我已经解决了我的书信问题,但我还是犯了一个错误。我试着用我的表结构发布一张图片,但我不能,因为我没有足够的声誉。仍然无法更新。你认为这与我的数据库和变量有关吗?你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第4行Creator='Atosag'和Name='Scatter'附近使用的正确语法说明前面缺少逗号
      or die ("Could not update!");
   or die(mysql_error()); // like that you can see what error or what goes wrong.
     Bonus_set='$dbBonus_set' , Description=
                             ^^//you missed coma here