我的代码有什么问题吗?
基本上我想做的是添加一个数字并使用连接到变量的内容更新 sql 中的字段。但由于 steamids 看起来像这样 STEAM_0:0:123123123
或 STEAM_0:1:123123123
我得到了这个
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':0:14166834' at line 1
这只是为了学习,所以我知道我的代码有无用的回显,但它只是为了看到它被添加并确保我无论如何都正确地执行了
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());
最佳答案
由于数据库中的 steamid
字段是一个字符串(似乎是,可能的值为 STEAM_0:0:123123123
和 STEAM_0 :1:123123123
),您必须在值周围使用引号:
mysql_query("UPDATE $tbl_name SET `cash` = $newcash WHERE `steamid` = '$mysteamid'");
使用 mysql_real_escape_string() 是必要的,因为它会转义作为参数传递的变量内部的引号 - 但您仍然必须在周围添加引号 SQL 查询中的字符串。
关于php - 如何正确更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667282/