@sunnyrio

Real_escape_string($var) выдает ошибку почему???

При запуске приложения браузер выдает вот такую ошибку:

Fatal error: Call to a member function real_escape_string() on null in C:\OpenServer\domains\localhost\rnfunctions.php on line 53

Вот сам код:

<?php // rnfunctions.php
$dbhost = 'localhost';  // Эта строка вряд ли нуждаеться в изменении
$dbname = 'rntest';
$dbuser = 'rnadmin';
$dbpass = 'rn12345';
$appname = "Robin's Nest";

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($mysqli->connect_errno) { echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error; }

function createTable($name, $query)
{
  if (tableExists($name))
    {
      echo "Таблица '$name' уже существует <br />";
    }
    else
    {
      queryMysql("CREATE TABLE $name($query)");
      echo "Таблица '$name' создана <br />";
    }
}

function tableExists($name)
{
  $result = queryMysql("SHOW TABLES LIKE '$name'");
  $result_end = $result->num_rows;
  $result->close();
  return $result_end;
}

function queryMysql($query)
{
  $result = $mysqli->query($query) or die($mysqli->error);
  return $result;
}

function destroySession()
{
  $_SESSION=array();
  if (session_id() !=" " || isset($_COOKIE[session_name()]))
     setcookie(session_name(), '', time()-2592000, '/');
  session_destroy();
}

function sanitizeString($var)
{
  $var = strip_tags($var);
  $var = htmlentities($var);
  $var = stripslashes($var);  
  $mysqli->set_charset('utf8');
  return $mysqli->real_escape_string($var);
}

function showProfile($user)
{
  if (file_exists("$user.jpg"))
  echo "<img src='$user.jpg' border='1' align='left' />";
  $result = queryMysql("SELECT * FROM rnprofiles WHERE user='$user'");
  if ($mysqli->num_row($result))
  • Вопрос задан
  • 587 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Потому что функцию sanitizeString надо выкинуть на помойку, чарсет задавать сразу после коннекта, а для запросов использовать подготовленные выражения
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы