ООП и удаление с бд

Рейтинг: 0Ответов: 1Опубликовано: 09.12.2014

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /* on line 20

в чем накололся?(

<?

mysql_connect ("*","","*"); mysql_select_db ("") or die(mysql_error());

class delete { public $id; public $dateBase; public $sd;

public function delete_drop(){

$this->sd = mysql_query("DELETE FROM `messages_room` WHERE `id`=' ".$this->id." '  ");
return $this->sd;
}

$delete_Class = new delete(); //ошибка 
$delete_Class->id = $_POST['q']; 
$delete_Class->dateBase ="messages_room";

echo $delete_Class->delete_drop();

unset($delete_Class);

?>

Новая проблема(

Всем спасибо заработало!)

Ответы

▲ 1

$this->sd - если используете обращение внутри класса ($this) то надо объявить в начале public $sd;.

$delete_Class->dateBaseTwo - может всё таки просто $delete_Class->dateBase ? Да и по логике, Вы же обращаетесь не к базе а к таблице. рекомендую переименовать на $this->tableName.

id=".$this->id." - добавьте одинарные кавычки для переменной ' ".$this->id." ' .

Если есть сомнения в выполнении SQL запроса добавьте вывод ошибок - mysql_query("тут запрос") or die(mysql_error());

class delete { 
    public $id;
    public $tableName;

public function delete_drop(){
    // Создавать объект стоит если Вы ещё где то собираетесь использовать. В противном случае достаточно обычной внутренней переменной для возврата результата.
    $query = mysql_query("DELETE FROM ".$this->tableName." WHERE `id` = '".$this->id."' ");
    return $query;
}

$delete_Class = new delete; 
$delete_Class->id = (int)$_POST['q']; // Так как по правилам хорошего тона id это целое число то приводим его на случай попытки Sql-инъекции к инту.
$delete_Class->tableName = "messages_room";

echo $delete_Class->delete_drop(); // Выведет или true -в случае удачного удаления, или false в случае невыполнения запроса.

unset($delete_Class);