php
  • mysql
  • 2012-11-12 94 views 0 likes 
    0

    在你假設我沒有建立數據庫連接之前,我做了。不更新的代碼的唯一部分是if語句。數據庫沒有更新行

    所有的值都可以正確回顯,只是這個查詢不起作用。

    這是目錄的配置和stuff.php

    $user = $mysqli->real_escape_string($_SESSION['username']); 
    $user_query = "SELECT * FROM users WHERE username = '$user'"; 
    $result = $mysqli->query($user_query); 
    $row = $result->fetch_assoc(); 
    $referrer = $row['ref']; 
    $refearn = $row['refearn']; 
    

    命名verify.php

    include('config/stuff.php'); 
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { // Get Real IP    
        $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } else { 
        $IP = $_SERVER['REMOTE_ADDR']; 
    } 
    
    if ($IP=="external server ip here") { 
         if (!empty($referrer)){ 
          $mysqli->query("UPDATE users SET points=points+10, refearn = refearn+10 WHERE username='".$referrer."'") or die(mysqli_error($mysqli)); 
         } 
         $mysqli->query("UPDATE users SET points=points+".$earnings.", completed = completed+1 WHERE username='".$subid."'") or die(mysqli_error($mysqli)); 
    }  
    
    +0

    你有什麼錯誤嗎?或者,你可以嘗試獲得該查詢的輸出嗎?「UPDATE users SET points = points + 10,refearn = refearn + 10 WHERE username ='」。$ referrer。「'」'並手動檢查phpmyadmin - 如果這樣的工作。 – Prakash

    +0

    從我所知道的情況來看,沒有任何錯誤。我可以確認它在PHPmyadmin中有效,我正在努力將它反映出來。 我現在有一個brainfart,我怎麼回聲查詢? – Stax

    +0

    所以它更新你只是試圖輸出響應? –

    回答

    1

    我的猜測是,你可以嘗試通過查詢檢索點的值,然後添加到它所以你只是更新一個簡單的值。但是,如果mysql_error()返回錯誤,應該更容易理解。

    例子:

    $getPoints = mysql_query("SELECT points FROM table WHERE condition"); 
    $points = mysql_result($getPoints, 0, "points"); 
    
    $update = mysql_query("UPDATE table SET points=" . ($points+10) . " WHERE condition"); 
    

    希望有所幫助。另一個考慮,但。爲什麼要使用endif結構,除非你打破PHP標籤來顯示內容?

    +0

    我不認爲它會做出不同的,但... 我的語法已經是正確的,所以我不明白爲什麼它不會工作。 – Stax

    0

    試試這個:

    $mysqli->query("UPDATE `users` SET `points`=`points`+10, `refearn` = `refearn`+10 WHERE `username`='".$referrer."'") or die(mysqli_error($mysqli)); 
    

    希望這有助於。我認爲,mysql查詢可能會將這些視爲常量 - 而不是mysql行。試試

    +0

    :(不,沒有工作。 – Stax

    相關問題