0

実行しようとしているmysqlクエリでphpを取得していますが、私の人生ではそれを理解できません。変数 $money_earned を一重引用符で囲んでも無駄でした。フロートです。$userdata 変数は文字列です。コードを実行すると、次のエラーが発生します。

Parse error: syntax error, unexpected T_STRING

これが私のmysqlクエリです:

$query = "UPDATE `authentication` SET `money` = money + $money_earned WHERE `username` = '$userdata'";
mysql_query($query);

ここに完全なコードを投稿します。うまくいけば、これがより簡単に解決できるようになります。

<?php

mysql_connect("blahblahblah");
mysql_select_db(blah) or die("Unable to select database");

$userdata = $_SESSION['userz'];
$secret_key = "TOPSECRET";
$user = $_GET['snuid'];
$money_earned = $_GET['currency'];
$id = $_GET['id'];
$secret = $_GET['verifier'];

$secret_check = md5($id.":".$user.":".$money_earned.":".$secret_key);

if($secret == $secret_check) {

   $query = "UPDATE `authentication` SET `money` = money + $money_earned WHERE `username` = '$userdata'";
   mysql_query($query);
 
} else {

}
4

2 に答える 2

3

あなたが受け取っている解析エラーとは関係ありませんが、私が気づいたことはほとんどありません(他の人が指摘したように、あなたのコードは正しい構文のようです)。

  1. 変数session_start();を呼び出す前にはしません。$_SESSION['userz'];
  2. $userdata次のようにエスケープする必要があります。$userdata = mysql_real_escape_string($_SESSION['userz']);
  3. PDO for mysql への切り替えを検討してください。
于 2012-11-26T19:57:49.190 に答える
0

次のように文字列を連結してみてください。

$query = "UPDATE authentication SET money = money + ". $money_earned." WHERE username = ".$userdata; mysql_query($query);

于 2012-11-26T19:45:23.060 に答える