警告: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."&"); ?>