php - 如何正确更新查询

标签 php mysql

我的代码有什么问题吗? 基本上我想做的是添加一个数字并使用连接到变量的内容更新 sql 中的字段。但由于 steamids 看起来像这样 STEAM_0:0:123123123STEAM_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:123123123STEAM_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/

相关文章:

php - 如何在向数据库中添加条目时在标签表中执行搜索?

mysql - 在rails 3.1RC4上使用mysql

MySQL 触发器——未插入正确的值

php - 保存 'model attributes' 不起作用(需要帮助)

php - Vuejs我如何淡化一个div

php - 过滤搜索结果的分页

mysql - 不按 ID 排序时获取上一行 ID

php - Zend Framework 如何在不同的模块中使用相同的模型?

php - Laravel 5,委托(delegate) - 检查角色不起作用

mysql - 用 * 字符包围单列中的字符串值