2013-03-30 104 views
0

我會將這個問題分成段落以便於引用;PHP準備語句更新表格

  1. 我有一個網站有一個按鈕,加分從數據庫中以1

  2. 當前數量現在我已經使用了「更新」的形式,以加在數據庫中的數。我用準備好的語句可以這樣做:

    <?php 
        require_once('connectvars.php'); 
        $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    
         if (mysqli_connect_errno()) { 
          echo 'Cannot connect.' . mysqli_connect_error(); 
          exit(); 
          } 
    
         if ($stmt = $mysqli->prepare('UPDATE `javascriptbutton` SET `clicks`=? WHERE `id`=?')) { 
    
          $stmt->bind_param('ii', $clicks, $id); 
    
          $clicks = $_POST['clicks'] + 1; 
          $id = 1; 
    
          $stmt->execute(); 
    
          $stmt->close(); 
    
         } else { 
          echo 'Woops, something went wrong.: ' . $mysqli->error; 
         } 
    

    >

  3. 當用戶按下在HTML中的按鈕,它會調用包含的Ajax的腳本是指上面的PHP腳本?

  4. 每次按下該按鈕時,此php文件必須從id = 1的數據庫列「clicks」中獲取當前「clicks」,並將其加上1並將其插回到數據庫中。

  5. 我一直在研究和尋找我的代碼了很多,我可以斷定,它與做:

    $點擊= $ _ POST [「點擊」] + 1;

的$ _ POST [「點擊」]應該在數據庫的當前號碼,並獲得由1

問題plussed: 我一定要創造一個選擇的形式來獲得當前點擊數據庫之外?或者我怎樣才能加上1的當前點擊,並把新的數字放回數據庫,直到下一次有人按下按鈕?

如果您想要加深5個步驟中的任何一個,請告訴我。

回答

0

你可以使用:

$mysqli->prepare("UPDATE `javascriptbutton` SET `clicks`=`clicks`+1 WHERE `id`=?") 

編輯全碼:

if ($mysqli->prepare("UPDATE `javascriptbutton` SET `clicks`=`clicks`+1 WHERE `id`=?")) { 

     $stmt->bind_param('i', $id); 
     $id = 1; 

     $stmt->execute(); 

     $stmt->close(); 

    } 
+0

像: $點擊=點擊+ 1; 我試過,但它不會工作。是否因爲我必須直接寫入mysql字符串?由於我是新來的準備好的陳述,我以爲我可以插入它使用「?」就像我用「id」 – PHPeter

+0

只是使用'column = column + 1' MySQL照顧其他:) – 2013-03-30 20:03:18

+0

我已經有$ clicks = $ clicks + 1;現在,但它似乎沒有任何區別。我不知道你的意思是列=列,但必須有一種方法來做到這一點,而不是直接插入到mysqli字符串中? – PHPeter