2014-06-12 39 views
3

只需將點添加到名爲'Points'的列中的現有值即可。我已經閱讀了幾篇文章,建議下面,但它不適合我。也許是因爲我使用mysqli而不是mysql?有什麼想法嗎? if語句正常工作。MySQLi更新中的增量值

if (!empty($m1A) && ($r1A == 0)) { 
    // Rewards pts 
    $query = "UPDATE users SET Points=Points+3 WHERE 1A='$m1A'"; 
    $result = mysqli_query($conn, $query); 

    // Record reward of pts 
    $query1 = "UPDATE rounds SET 1A = 1"; 
    $result2 = mysqli_query($conn, $query1); 
} 
+0

是什麼mysqi_error()說什麼? –

+1

更改您的查詢以查看如下錯誤:mysqli_query($ conn,$ query)或die(mysqli_error());' – JakeGould

+0

@JakeGould - 獲取「警告:mysqli_error()期望參數1爲mysqli,布爾值在」 ... –

回答

4

如果你的列名以數字開頭的,你要引用它在反引號:

$query = "UPDATE users SET Points=Points+3 WHERE `1A`=$m1A"; 

和:

$query1 = "UPDATE rounds SET `1A` = 1"; 

而且我會建議使用準備好的語句綁定參數以避免sql注入問題。

編輯:如果您的1A列不是整數列且值是字符串,則需要引用它們。

$query = "UPDATE users SET Points=Points+3 WHERE `1A`='$m1A'"; 
                ^^

雖然這個問題會自動用事先準備好的聲明中得到解決......

+1

謝謝!我會花一些時間並瞭解更多關於準備好的陳述以避免這些浪費時間。 –

+1

@JamesPatrick我剛剛閱讀了關於準備語句的PHP手冊。 https://php.net/manual/en/mysqli.quickstart.prepared-statements.php –