mysqli代码,错误为警告:mysqli_query()需要至少2个参数,给定1个&;给出null


mysqli code, getting error as Warning: mysqli_query() expects at least 2 parameters, 1 given & null is given

警告:mysqli_query()需要至少2个参数,其中1个在第6行的/home/flowatrai/public_html/included/function.php中给定

警告:mysqli_fetch_array()要求参数1为mysqli_result,在第7行的/home/flowatrai/public_html/included/function.php中给定null

我的代码是:function.php

<?php include 'connect.php'; 
function pagination($query, $per_page = 10,$page = 1, $url = '?'){ 
$query = mysqli_query("SELECT COUNT(*) as `num` FROM {$query}");
$row = mysqli_fetch_array($conn, $query);
.....
....
?>

以及connect.php

<?php 
$host = "localhost";
$user= "root";
$pass= "";
$db= "fewa";
$err1 = "Couldn't connect db, try again ";
$conn = mysqli_connect($host, $user, $pass) or die($err1);
$select_db = mysqli_select_db($conn, $db);
?>

我有分页页面,其中显示项目:category.php

<?php 
 include_once ('includes/function.php');
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 3;
$startpoint = ($page * $limit) - $limit;
//to make pagination
 $sql = "items where subcat2_id='$subcat2_id'";
 //show records
 $query = mysqli_query($conn,"SELECT * FROM {$sql} LIMIT {$startpoint} , {$limit}");
while ($row = mysqli_fetch_assoc($query)) {
......
 <?php }?>
 <?php  echo pagination($sql,$limit,$page,"?subcat2_id=".$subcat2_id."&"); ?> 
函数mysqli_query()需要两个参数。第一个是一个开放的mysql连接资源(mysql_connect()的结果)。在您的情况下,$conn需要是第一个参数。

例如:

mysqli_query($conn, "SELECT COUNT(*) as `num` FROM {$query}");

您需要使$conn成为pagination()的参数之一,以便它在函数中可用。

此外,您使用OOP版本的MySQLi进行连接,而不是过程性连接。这意味着你应该更好地使用$conn->query()而不是mysqli_query($conn)

编辑:

$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_errno) {
    printf("Connect failed: %s'n", $conn->connect_error);
    exit();
}

function pagination(mysqli $conn, $query, $per_page = 10, $page = 1, $url = '?'){ 
    $result = $conn->query("SELECT COUNT(*) as `num` FROM {$query}");
    while ($row = $result->fetch_assoc()) {
        // Do stuff
    }
    ...
}

<?php echo pagination($conn, $sql,$limit,$page,"?subcat2_id=".$subcat2_id."&"); ?>