2016-03-12 2 views
1

Я пытался показать некоторые результаты из базы данных MySQL, которая имеет более 5000 строк.Показывает устаревшую ошибку в wampserver

Я пробовал с 10 строками, код работает, но он показывает предупреждение, как на скриншоте !!

Показывает ошибку в WampServer

Показывает почти такая же ошибка в интернет-сервере, а также Пожалуйста, помогите мне исправить это, я не имею никакого знания в SQL.

Error

<?php 
    class DBController 
    { 
     private $host = "localhost"; 
     private $user = "user"; 
     private $password = "1234"; 
     private $database = "new1"; 



     function __construct() 
     { 
      $conn = $this->connectDB(); 
      if (!empty($conn)) { 
       $this->selectDB($conn); 
      } 
     } 

     function connectDB() 
     { 
      $conn = mysql_connect($this->host, $this->user, $this->password); 
      return $conn; 
     } 

     function selectDB($conn) 
     { 
      mysql_select_db($this->database, $conn); 
     } 

     function runQuery($query) 
     { 
      $result = mysql_query($query); 
      while ($row = mysql_fetch_assoc($result)) { 
       $resultset[] = $row; 
      } 
      if (!empty($resultset)) 
       return $resultset; 
     } 

     function numRows($query) 
     { 
      $result = mysql_query($query); 
      $rowcount = mysql_num_rows($result); 
      return $rowcount; 
     } 
    } 
    ?> 

Пожалуйста, проверьте его

<?php 
    function perpage($count, $per_page = '10',$href) { 
     $output = ''; 
     $paging_id = "link_perpage_box"; 
     if(!isset($_POST["page"])) $_POST["page"] = 1; 
     if($per_page != 0) 
     $pages = ceil($count/$per_page); 
     if($pages>1) { 

      if(($_POST["page"]-3)>0) { 
       if($_POST["page"] == 1) 
        $output = $output . '<span id=1 class="current-page">1</span>'; 
       else     
        $output = $output . '<input type="submit" name="page" class="perpage-link" value="1" />'; 
      } 
      if(($_POST["page"]-3)>1) { 
        $output = $output . '...'; 
      } 

      for($i=($_POST["page"]-2); $i<=($_POST["page"]+2); $i++) { 
       if($i<1) continue; 
       if($i>$pages) break; 
       if($_POST["page"] == $i) 
        $output = $output . '<span id='.$i.' class="current-page" >'.$i.'</span>'; 
       else     
        $output = $output . '<input type="submit" name="page" class="perpage-link" value="' . $i . '" />'; 
      } 

      if(($pages-($_POST["page"]+2))>1) { 
       $output = $output . '...'; 
      } 
      if(($pages-($_POST["page"]+2))>0) { 
       if($_POST["page"] == $pages) 
        $output = $output . '<span id=' . ($pages) .' class="current-page">' . ($pages) .'</span>'; 
       else     
        $output = $output . '<input type="submit" name="page" class="perpage-link" value="' . $pages . '" />'; 
      } 

     } 
     return $output; 
    } 

    function showperpage($sql, $per_page = 10, $href) {  
     $result = mysqli_query($sql); 
     $count = mysqli_num_rows($result); 
     $perpage = perpage($count, $per_page,$href); 
     return $perpage; 
    } 

?> 

err

+1

** Пожалуйста, не используйте функции 'mysql_ *'. Эта библиотека существует много лет назад и теперь устарела. ** Пожалуйста, используйте вместо этого 'mysqli_ *' или 'PDO'. –

+0

См. Это для получения дополнительной информации: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php –

+0

Речь идет не о SQL, а о языке программирования PHP и о реализации используемый. ': (' Вам нужно перенести весь код в новую версию. –

ответ

2

Хорошо, принимая риск себя и отвечать на перенесенный код. Удостоверьтесь, что у вас есть MySQLi, установленный путем проверки phpinfo();. Ваш новый код:

<?php 
    class DBController 
    { 
     private $host = "localhost"; 
     private $user = "user"; 
     private $password = "1234"; 
     private $database = "new1"; 
     private $conn; 

     function __construct() 
     { 
      $this->conn = $this->connectDB(); 
      if (!empty($conn)) { 
       $this->selectDB($conn); 
      } 
     } 

     function connectDB() 
     { 
      $conn = mysqli_connect($this->host, $this->user, $this->password, $this->database); 
      return $conn; 
     } 

     function runQuery($query) 
     { 
      $result = mysqli_query($this->conn, $query); 
      while ($row = mysqli_fetch_assoc($result)) { 
       $resultset[] = $row; 
      } 
      if (!empty($resultset)) 
       return $resultset; 
      return false; 
     } 

     function numRows($query) 
     { 
      $result = mysqli_query($this->conn, $query); 
      $rowcount = mysqli_num_rows($this->conn, $result); 
      return $rowcount; 
     } 
    } 
?> 

Примечания:

  1. Новая частная переменная $conn.
  2. Теперь нет select_db() функция.
  3. Добавлено return для runQuery.

Причина:Why shouldn't I use mysql_* functions in PHP?

Надеется, что это помогает.

+1

Hah .. Я рад узнать вас ... У меня много кодов, которые необходимо обновить к новой версии .. Могу ли я вставить их для вас, и вы конвертируете их для меня? ': -P' * (просто шутите) * – Shafizadeh

+1

@Shafizadeh О да, пожалуйста, используйте мой' Auto-PHP-MySQL-to-MySQLi -er' function! ': D' –

+0

Я думаю, что сработало, есть и другая ошибка, но я могу работать с ними. Спасибо –

Смежные вопросы