0

我的代码有什么问题?基本上我要做的是添加一个数字并使用连接到变量的内容更新 sql 中的字段。但是既然蒸汽流看起来像这样STEAM_0:0:123123123,或者STEAM_0:1:123123123我明白了

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ':0:14166834' 附近使用正确的语法

这只是为了学习,所以我知道我的代码有无用的回声,但这只是为了看到它被添加并确保我无论如何都正确地做

addmoney.php

<?php
include("inc/config.php");
$mysteamid=mysql_real_escape_string($_POST['mysteamid']);

$sql = "SELECT * FROM $tbl_name WHERE steamid='$mysteamid'";
$result=mysql_query($sql);
$cash=mysql_result($result, 0, 'cash'); // outputs 7th
echo $cash;
$newcash= $cash + "10000";
echo "\n";
echo $newcash;
mysql_query("UPDATE $tbl_name SET `cash` = $newcash WHERE `steamid` = $mysteamid") or        die(mysql_error()); 
?>

index.php 包含一个工作表单数据,但我的代码中的错误并不真正需要它。我的主要问题是 addmoney.php 中的这一行

$mysql_query("UPDATE $tbl_name SET `cash` = $newcash WHERE `steamid` = $mysteamid") or die(mysql_error()); 
4

2 回答 2

1

由于您steamid在数据库中的字段是一个字符串(它似乎是,可能的值是STEAM_0:0:123123123and STEAM_0:1:123123123,您必须在值周围使用引号:

mysql_query("UPDATE $tbl_name SET `cash` = $newcash WHERE `steamid` = '$mysteamid'");


使用mysql_real_escape_string()是必要的,因为它会在您将其作为参数传递的变量中转义引号 - 但您仍然必须在 SQL 查询中将引号括字符串周围。

于 2012-05-19T17:15:13.767 回答
0

在第一个查询中,您将 $mysteamid 值用简单的引号括起来,而在第二个查询中您没有。如果 steamid 是字符串类型,则需要用引号将值括起来,例如

"UPDATE $tbl_name SET `cash` = $newcash WHERE `steamid` =' $mysteamid'"
于 2012-05-19T17:19:25.293 回答