Mysql_result()期望参数1警告

时间:2015-09-24 22:00:26

标签: php mysql pagination warnings divide

我很难在以下代码中找到错误。似乎所有代码都是正确的,但每次我尝试运行页面时都会出现此警告错误。有没有人对如何解决这个问题有很好的了解?是的,我已经检查了连接,这很好,并且名为event的表在数据库服务器中有event_id。提前致谢。

代码从数据库生成记录并根据页码将其分隔。我每页设置了1条记录。

  

警告:mysql_result()要求参数1为resource,boolean   在第89行的/Applications/XAMPP/xyz/xyz/xyz/event.php中给出

<?php
$link = mysql_connect('localhost', '#', '#');
if (!$link) {
    die('Could not connect: ' . mysql_error());
                            }
$per_page = 1; 

$pages_query = mysql_query("SELECT count(event_id) FROM event ORDER BY event_date"); 
$pages = ceil(mysql_result($pages_query, 0) / $per_page); 
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
$start = ($page - 1) * $per_page; 

$query = mysql_query("SELECT * FROM event LIMIT $start, $per_page");
                        while ($query_row = mysql_fetch_assoc($query)) {
                                    $event_name = $query_row['event_name'];
                                    $event_info = $query_row['event_info'];
?>   

第89行

$pages = ceil(mysql_result($pages_query, 0) / $per_page); 

3 个答案:

答案 0 :(得分:1)

首先:

不推荐使用以mysql_而非mysqli_开头的每个功能。

这意味着你不应该使用它们。这意味着当删除这些功能时,你的脚本会突然发生,这很快就会发生。

自从这些功能被认为是最糟糕的做法以来,已经很长时间了。今天没有理由使用这些功能。

第二

mysql_query()在查询失败时返回布尔值false。

你真正的问题在于上面这一行。弄清楚为什么$pages_query = mysql_query("SELECT count(event_id) FROM event ORDER BY event_date");失败,你的脚本会起作用。

第三:

立即切换到mysqli_功能。

答案 1 :(得分:1)

您忘记在mysql_connect()之后使用mysql_select_db($database_name)选择数据库。

因此,mysql_query()失败并返回false,因此mysql_result()收到布尔值而不是结果集资源,而后者又生成了您看到的消息。

也就是说,关于弃用mysql扩展(有利于mysqli或PDO)的评论是非常有效的。

答案 2 :(得分:0)

为了理解,请不要弃用它,试试这个:

<?php
$host = "localhost";
$username = "your_username_here";
$password = "your_pass_here";
$dbname = "your_db_name_here";

$con = mysql_connect($host, $username, $password) or die ("Could not connect to Server");
$db = mysql_select_db($dbname, $con) or die ("Could not connect to database: $dbname");

$per_page = 1; 

$pages_query = mysql_query("SELECT count(event_id) FROM event ORDER BY event_date"); 
$pages = ceil(mysql_result($pages_query, 0) / $per_page); 
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1; 
$start = ($page - 1) * $per_page; 

$query = mysql_query("SELECT * FROM event LIMIT $start, $per_page");

      while ($query_row = mysql_fetch_assoc($query)) {
            $event_name = $query_row['event_name'];
            $event_info = $query_row['event_info'];
      }
?>
  

注意:如果您对此有所了解,我建议您转到其中   mysqli或PDO。