4

有人可以帮我解决我遇到的这个错误,我找不到问题。我知道我的代码很垃圾,我应该使用 PDO。

我正在尝试为我的游戏制作交易脚本,这是用户接受或拒绝交易的页面,我还没有尝试添加拒绝功能。截至目前,我收到此错误。

“字段列表”中的未知列“昵称”

<?php


    if ($_POST['A'] == '1' ) {
$token= mysql_real_escape_string($_POST['token']);
$tokenn = strip_tags($token);


$sql234 = "SELECT * FROM trade WHERE trade_to='".$_SESSION['username']."'";
$result2 = mysql_query("SELECT * FROM trade WHERE trade_to='".$_SESSION['username']."'");
while($row2 = mysql_fetch_array($result2)){


$sql23 = "SELECT * FROM users WHERE username='".$_SESSION['username']."')";
$result = mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'");
while($row = mysql_fetch_array($result)){

if (isset($_POST['slot1'])) {

        echo "<p>You have accepted the trade.</p>" ;
        mysql_query("UPDATE user_pokemon SET belongsto=".$row2['trade_to']." WHERE id='".$row2['trade_pokeid']."'") 
            or die(mysql_error());

        mysql_query("UPDATE user_pokemon SET belongsto=".$row2['trade_from']." WHERE id='".$row2['trade_mypokeid']."'")
            or die(mysql_error());

            mysql_query("DELETE FROM trade WHERE trade_id=".$row2['trade_id']."")
            or die(mysql_error());


    } else {

}
}
}


}

?>

<?php
$result = mysql_query("SELECT * FROM trade WHERE trade_to='".$_SESSION['username']."'");
while($row = mysql_fetch_array($result))
{   

$idd= mysql_real_escape_string($row['trade_id']);
$iddd = strip_tags($idd);

?>
</span>
<form name="slot1" action="" method="post">
  <div align="center">
    <p>
      <span>
        <select name="A" id="" >
          <option value="1">Buy</option>
        </select>
        <input type="hidden" name="token" id="token" value="<?php  echo $iddd ;  ?>" />
        <br />
        <input type="submit" class="submit" value="Accept" name="slot1">
        </span></p>


    </div>
</form>
<span>
<?php
echo $row ['trade_id'];
}
?>

</span>

</p>
</div>
</center>


</td>

<?php include 'includes/bottom.php'; ?>

任何问题将不胜感激:)

4

1 回答 1

4

在这一行:

 mysql_query("UPDATE user_pokemon SET belongsto=".$row2['trade_from']." WHERE id='".$row2['trade_mypokeid']."'")

你忘了引用第一个参数:

 mysql_query("UPDATE user_pokemon SET belongsto='".$row2['trade_from']."' WHERE id='".$row2['trade_mypokeid']."'")

代码中接下来的两条mysql_query指令也会出现同样的错误。

你知道,但我还是要说:使用PDOor mysqli。至少,mysql_real_escape_string像您在代码开头所做的那样,使用 清理所有数据。

 mysql_query("UPDATE user_pokemon SET belongsto='".mysql_real_escape_string($row2['trade_from'])."' WHERE id='".mysql_real_escape_string($row2['trade_mypokeid'])."'")

我之所以这么说是因为从长远来看它会对你有所帮助,仅此而已

于 2013-03-29T00:20:51.547 回答