Я пытаюсь создать функцию, в которую я могу передать запрос mysql и получить результат обратно или ошибку, он также должен проверить, является ли пользователь, выполняющий код, администратором, если он есть, то он получитПеременная сеанса, которая содержит число запросов mysql, выполненных на странице, а затем увеличивает ее на 1 число, а затем устанавливает обратно в сеанс, также, если пользователь является администратором, он будет отображать любые сообщения об ошибках.
Я знаю, что это не лучший код, но похоже, что он должен работать?Любые советы по улучшению тоже, пожалуйста.
Вы видите, что я запускаю другой метод, который получает значение переменных сеанса, затем я устанавливаю его в переменную в текущем методе, затем я увеличиваю его значение на 1 число изатем запустите метод установки, чтобы снова сохранить его в сеансе.Я не совсем уверен, что это правильный способ сделать это?Мне действительно нужно запустить все эти методы и сохранить их все в локальной переменной, как я?
Также я получаю эту ошибку
Неустранимая ошибка: использование $ this, когда нетв контексте объекта в C: \ webserver \ htdocs \ project2 \ includes \ classes \ Database.class.php в строке 37
Строка 37 - это
$this->user_role = $session->get('user_role');
Метод ...
public static function query($sql)
{
global $session; // the $session Object
//get the session value to see if user is an admin
$this->user_role = $session->get('user_role');
//if user is admin, get query counter session value and +1 to it and reset it to a session variable.
if ($this->user_role >= 9){
$this->querie_counter = $session->get('querie_counter');
$this->querie_counter++; // add +1 to the number
$session->set('querie_counter',$this->querie_counter)
}
//run mysql query
$result = mysql_query($sql);
if (!$result) {
// If admin is viewing then we show the SQL code and the error returned
if($this->user_role >= 9){
$error = '<BR><center><font size="+1" face="arial" color="red">An Internal Error has occurred.<BR> The error has been recorded for review</font></center><br>';
$sql_formatted = highlight_string(stripslashes($sql), true);
$error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted .
'<br><br><b>The MySQL Error Returned</b><br>' . mysql_error();
}
die($error);
}
return $result;
}