更新数据库时出错(代码崩溃)

时间:2015-02-08 14:22:45

标签: php mysqli

我试图为游戏制作商店机制,但只要我输入UPDATE语句,动作代码就什么都不做。

谁能看到问题是什么?可能是一个非常愚蠢的人。

以下代码:

<?php 
include('include/configdb.php');
$user_name = $_SESSION['user_name'];
$safegun = mysqli_real_escape_string($mysqli, $_GET['gun']);
if($safegun == 0){
echo 'Please specify an amount';
} elseif($safegun >= 1){
//Db thingy`s
$mysqli->query("UPDATE user SET money= ".$safegun." * 300 gun = gun+"$safegun" WHERE username = '".$user_name."'");
sleep(30);
header('location:shop.php');
}

任何帮助都会被多得多。 亲切的问候, 迈克尔

2 个答案:

答案 0 :(得分:1)

您的UPDATE语法错误,如果您要更新多个列,则应使用逗号分隔它们。所以它应该是:

$mysqli->query("UPDATE user SET money= ".$safegun." * 300, gun = gun+"$safegun" WHERE username = '".$user_name."'");

参考:Manual

请注意,我不知道您如何声明$mysqli连接。如果您使用了仅3参数的构造函数(请参阅docs:http://php.net/manual/en/mysqli.construct.php),则应在MySQL命令中添加db_name

$mysqli->query("UPDATE db_name.user SET money= ".$safegun." * 300, gun = gun+"$safegun" WHERE username = '".$user_name."'");

答案 1 :(得分:0)

请看这个: PHP Manual

它说它除了1个字符串。不是2,将其从您的

中删除

$safegun = mysqli_real_escape_string($mysqli, $_GET['gun']); 至: $safegun = mysqli_real_escape_string($_GET['gun']);

$mysqli->query("UPDATE user SET money= ".$safegun." * 300 gun = gun+"$safegun" WHERE username = '".$user_name."'");

要:

$mysqli->query("UPDATE user SET money= '$safegun' * 300, gun = gun+'$safegun' WHERE username = '$user_name' "); 编辑。