2016-04-14 4 views
0

Как проверить значение записи в базе данных и когда ее обновление 0 до 1 в php?Проверка и обновление ввода базы данных php

На данный момент он всегда возвращается с Number Not used даже когда я установить от 0 до 1 в базе данных моего собственного ....

Таблица:

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

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

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

код:

$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

вы пропустили точку с запятой после переменной $ имя, это опечатка или код, как это. – JiteshNK

+2

'WHERE number = '$ name'' – Daan

+0

' update MasterNumbers set used = 1 где 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(); 
?> 
Смежные вопросы