2015-04-10 2 views
-4
$sql = "UPDATE reservations SET status = '$this->status',remaining_time ='$this->remain',cost = '$this->cost' WHERE id = '$this->id'"; 

Этот код не работает, хотя это правильноОператор обновления в mysql не работает, хотя это правильно?

Я использую объектно-ориентированного PHP. $this->id - это переменная, передаваемая по ссылке с другой страницы.

Когда я запускаю код, он говорит мне, что он прошел успешно, но есть нулевые строки.

Одна линия выше является частью следующего кода:

<?php 
class edit { 
    private $status; 
    private $remain; 
    private $cost; 
    private $id; 
    public function edit_data() { 
     $this->status = strtoupper(strip_tags($_POST['status'])); 
     $this->remain = strip_tags($_POST['remain']); 
     $this->cost = strip_tags($_POST['cost']); 
     $submit  = $_POST['submit']; 
     $this->id  = $_GET['edit']; 
     $con = mysql_connect("localhost","root","") 
     or die("Failed to connect to the server: " . mysql_error()); 
     mysql_select_db("Users") 
     or die("Failed to connect to the database: " . mysql_error()); 
     if($submit) { 
      if($this->status and $this->remain and $this->cost) { 
       $sql = "UPDATE reservations SET status = '".$this->status."',remaining_time ='".$this->remain."',cost = '".$this->cost."' WHERE id = '".$this->id."'"; 
       $query = mysql_query($sql,$con); 
       if(!$query) { 
        echo("Could not update data: " . mysql_error()); 
       } 
       echo "<h4>Customer reservation data has been updated successfully.</h4>"; 
       echo "Number of affected rows: " . mysql_affected_rows(); 
      } 
      else { 
       echo "Please fill in all fields."; 
      } 
     } 
     mysql_close($con); 
    } 
} 
$edit = new edit(); 
echo $edit->edit_data(); 
?> 
+2

'Этот код не работает, хотя это правильно' <= смешно, я говорю, что это неправильно. – Daan

+0

Определите «не работает». – Cfreak

+1

Одна строка кода просто не режет * для меня *. –

ответ

1

Вы уверены, что о вашем конкатенации? $sql = "UPDATE reservations SET status = '$this->status',remaining_time ='$this->remain',cost = '$this->cost' WHERE id = '$this->id'"; Печать $sql для просмотра значения.

Если ваша база данных уже обновлена, вы получите 0 затронутых линий.

0

Я не совсем уверен, но попробовать это,

"UPDATE reservations SET status = '".$this->status."',remaining_time ='".$this->remain."',cost = '".$this->cost."' WHERE id = '".$this->id."'"; 
+0

Суровый Джоши ... Я пробовал это ... еще не за работой –

0

кажется, что ваша таблица не содержит значение, которое удовлетворяет условию где.

Вы можете проверить это, выполнив простой запрос.

$sql = "select * from reservations where id='$this->id'"; 
Смежные вопросы