我正在尝试创建一个小脚本,它将基本上替换现有 mysql 表数组的值。该表有“claimed”行,其默认值为 0,并且是“0”、“1”的枚举(如果有帮助,可以切换到 INT 或 Text,但在我尝试时没有帮助)。
这个想法是我的游戏服务器将调用数据库,如果该值为 0 或 1,则执行不同的操作。请有人帮忙!
我无法使用游戏服务器调用的脚本来读取单行文本的值,从而将声明的行值从 0 更新为 1。
有什么想法吗?
<?php
include 'connect.php';
if(isset($_GET['username'])){
if(!empty($_GET['username'])){
$username = mysql_real_escape_string(strip_tags($_GET['username']));
$sql = mysql_query("SELECT * FROM donations WHERE username='$username' LIMIT 1") or die("MYSQL");
$count = mysql_num_rows($sql);
if($count == 1){
while($row = mysql_fetch_array($sql)){
$claimed = $row["claimed"];
$amount = $row["amount"];
$package = $row["package"];
if($claimed == 0){
$sql = mysql_query("UPDATE claimed SET claimed='1' WHERE username='$username' LIMIT 1");
if($sql){
die($package);
}else{
die("MYSQL");
}
}else{die("CLAIMED");}
}
}else{die("EMPTY");}
}else{die("EMPTY");}
}
?>
最佳答案
修复:
mysql_query("UPDATE claimed SET claimed='1' WHERE username='$username' LIMIT 1");
更改为
mysql_query("UPDATE donations SET claimed='1' WHERE username='$username' LIMIT 1");
更新语法:
UPDATE table_name SET column_name = value where ...
并停止使用 mysql_*,因为它已被弃用,使用 mysqli_ 或 pdo
关于PHP MySQL UPDATE 失败使用 PHP 语句将 INT 值从 0 更改为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368121/