Как заменить mysql_result в PHP 7.2? - PullRequest
0 голосов
/ 30 ноября 2018

Я обновил свой сайт с PHP 5.6 до 7.2 и сделал переход в коде с mysql на mysqli, к сожалению, функция mysql_result удалена из 7.2, поэтому после поиска здесь я нашел замену, но, к сожалению, она не работает,До обновления моя таблица была заполнена, но после обновления таблица пуста?!

Вот код перед обновлением:

if (isset($_POST['submit'])){

   $sql = "SELECT id FROM users
   WHERE user='{$_POST['user']}'
   AND pass='{$_POST['passwd']}'";
   $result = mysql_query($sql);

   if (mysql_num_rows($result) == 0){
     header("Location: index.php?badlogin=");
     exit;
   }

   $_SESSION['sess_id_tid'] = mysql_result($result, 0); 
   $_SESSION['sess_user_tid'] = $_POST['user'];

   header("Location: tid.php");
   exit;
}

Так я изменил код после обновлениядо 7.2:

if (isset($_POST['submit'])){

   $sql = "SELECT id FROM users WHERE user='{$_POST['user']}' AND pass='{$_POST['passwd']}'";
   $result = mysqli_query($conn, $sql);


   if (mysqli_num_rows($result) == 0){
     header("Location: index.php?badlogin=");
     exit;
   }


   function mysqli_result($res,$row=0,$col=0){
     $numrows = mysqli_num_rows($res);
     if ($numrows && $row <= ($numrows-1) && $row >=0){
       mysqli_data_seek($res,$row);
       $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
       if (isset($resrow[$col])){
         return $resrow[$col];
       }
     }
     return false;
   }

   $_SESSION['sess_id_tid'] = mysqli_result($result, 0, 0);
   $_SESSION['sess_user_tid'] = $_POST['user'];

   header("Location: tid.php");
   exit;

}

Что я пропустил?

Обновление: Спасибо @Phil & @Madhuri Patel,

Вот изображение проблемы, с которой я сталкиваюсь:

Изображение таблиц до PHP 5.6 и после PHP 7.2

1 Ответ

0 голосов
/ 30 ноября 2018

mysql_query возвращает вам объект mysqli_result.Оттуда вы можете получить желаемое значение.

if($query_run = mysqli_query($link, $query)) {
    // This gets you one row at a time, use a while if there are multiple rows
    // while($row = mysqli_fetch_assoc($query_run)){}
    $row = mysqli_fetch_assoc($query_run);
    $count = $row['count'];
    // Do whatever with $count
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...