2016-04-14 120 views
0

如何檢查數據庫條目的值,以及何時將它在PHP中更新爲1時?檢查並更新數據庫條目php

在它總是回來與Number Not used甚至當我在數據庫中我自己設定的0到1的那一刻....

表:

========== ==============================================

MasterNumbers: 
number   | used 
01513242  | 0 
01012233  | 0 
23566545  | 0 

=============================================== =========

code:

$name = "01513242"; 
$checkForUsed = mysql_query("SELECT * FROM MasterNumbers WHERE `used`= '$name'"); 
$numrowsUsed = mysql_num_rows($checkForUsed); 

if ($numrowsUsed == 0) 
{ 
    //update used (on 01513242) form 0 to 1 
    die("Number Not used"); 
} 
else 
{ 
    die("Number is used"); 
} 
+1

你錯過了$ name變量後的分號,這是錯字或您的代碼是這樣的。 – JiteshNK

+2

'WHERE number ='$ name'' – Daan

+0

'update MasterNumbers set used = 1 where number =?並使用= 0'。並請停止使用'mysql_query'。 –

回答

1

我沒有檢查以下class,因爲我不想爲此設置database。像這樣的班級應該完成這項工作。

<?php 
    class update_numrow_class{ 
     // Database settings 
     protected $_mysqli = false; 
     protected function __construct($number){ 
      $this->username => 'db_username', 
      $this->password => 'db_password', 
      $this->host => 'localhost', 
      $this->database => 'db_name', 
      $this->charset => 'utf8', 
      $this->number => $number 
     } 

     // Function to connect to the database 
     function connect(){ 
      $mysqli = new mysqli($this->host, $this->username, $this->password, $this->database); 
      if ($mysqli->connect_errno) { 
       $this->_mysqli = false; 
      }else { 
       $mysqli->set_charset($this->charset); 
       $this->_mysqli = $mysqli; 
      } 
     } 

     // Function to execute an sql query 
     function execute_query($sql){ 
      if($results = $this->_mysqli->query($sql)){ 
       return $results; 
      }else{ 
       return false; 
      } 
     } 

     // Function to check if the number was used 
     function check_number(){ 
      $this->connect(); 
      $number_result = $this->execute_query("SELECT used FROM MasterNumbers WHERE number =" . $this->number); 
      if($number_result == 0){ 
       return false; 
      }else{ 
       return true; 
      } 
     } 

     // Function to update the used value 
     function update_number(){ 
      $number_check = $this->check_number(); 
      if(!$number_check){ 
       $this->connect(); 
       $update_result = $this->execute_query("UPDATE MasterNumbers SET used = 1 WHERE number = " . $this->number); 
       return 'Number: ' . $this->number . ' successful updated.'; 
      }else{ 
       return 'Number: ' . $this->number . ' was already used.'; 
      } 
     } 
    } 
?> 

將用於類似:

<?php 
    require_once('update_numrow_class.php'); 
    $update_object = new update_numrow_class(01513242); 
    $update_response = $update_object->update_number(); 
?>