2014-05-12 41 views
1

我不知道爲什麼,但出於某種原因下面的代碼並不如預期運行PHP MYSQL「UPDATE」

$SQL = "UPDATE characters SET 
      name = '$char_name', 
      status = '$char_status', 
      gender = $char_gender, 
      pos.x = $char_posx, 
      pos.y = $char_posz, 
      shards = $char_money, 
      level = $char_level, 
      exp = $char_exp, 
      hair = $char_hair, 
      color.r = $char_color_r, 
      color.g = $char_color_g, 
      color.b = $char_color_b, 
      spawn = $char_spawn 
      WHERE username = '$nick'"; 
     mysql_query($SQL) or die("ERRORCODE 04 - DB QUERY FAIL"); 
     echo "saved"; 

它總是給我的「錯誤碼04。」這意味着查詢失敗..

FYI:pos.y分貝值設置爲char_posz是正確的,因爲軸是從形式到實際的數據庫不同

編輯:代碼現在改了一下,由於一些意見,現在看起來像這個:

$SQL = "UPDATE characters SET 
     name = '$char_name', 
     status = '$char_status', 
     gender = $char_gender, 
     pos_x = $char_posx, 
     pos_y = $char_posz, 
     shards = $char_money, 
     level = $char_level, 
     exp = $char_exp, 
     hair = $char_hair, 
     color_r = $char_color_r, 
     color_g = $char_color_g, 
     color_b = $char_color_b, 
     spawn = $char_spawn 
     WHERE username = '$nick'"; 
    mysqli_query($dbcon, $SQL) or die(mysqli_error($dbcon)); 
    echo "saved"; 

這是我的錯誤:

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的「 POS_X =, POS_Y =, 碎片=, 」 4行

+1

用'die(mysql_error())'替換'die(「ERRORCODE 04 - DB QUERY FAIL」);'知道查詢失敗的確切原因。 –

+0

嘗試使用像'mysql_query($ SQL)或死(mysql_error());'。如果我不應該使用mysql_ *,也不要使用不贊成的'mysql_ *' – shatheesh

+0

*有什麼選擇? – Cerbion

回答

0

儘量把單引號括起來的所有變量中正確的語法手冊查詢

+0

@Konerak,Nope他的意思是圍繞變量..'$ char_gender' .. etc –

+0

最終,在我做出的所有更改之後,將每個值都放在單引號中是關鍵以便它最終奏效。謝謝大家。 – Cerbion

+0

唉看起來它還沒有完全工作,腳本響應與「保存」和所有,但所有的值都設置爲0爲我的性格... – Cerbion