Uncaught TypeError:传递给...的参数1必须是mysqli的实例,给定为null

时间:2019-03-01 22:34:13

标签: php phpmyadmin

我只是一个使用php代码的初学者,在做一个学校项目时,被这个问题困扰了一段时间。我的数据库(使用phpmyadmin)有一个称为Assets的表,其中包含几张图像,每张图像均具有自动递增的ID。我想创建一个显示功能,将所有这些图像显示给用户,但是我一直遇到这个问题。任何建议或帮助将不胜感激。

显示功能:

function display(mysqli $conn){

    $sql = "SELECT * FROM assets ORDER BY id DESC";
    $result = mysqli_query($conn, $sql);
    while($row = mysqli_fetch_array($result)){

       echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['file'] ).'"/>'; 

    }
}

与数据库的连接:

/* Try catch to connect to database*/
try{
    $conn = mysqli_connect("localhost", $dbuser, $dbpassword, $db);
}catch(Exception $e){
    echo "<br>" . $e->getMessage();
}

调用显示功能:

<?php display($conn); ?>

2 个答案:

答案 0 :(得分:0)

只需使用:

function display($conn){
...
}

但是.. ,如果出现错误“为函数参数赋予NULL”,则可能将错误的登录名/密码传递给了DB-检查它或变量是否超出文件范围。 / p>

答案 1 :(得分:0)

您还可以使用:

function display(mysqli $conn = null)

这将允许将null作为参数传递而不会出现错误,但是,如果此对象为null,则这会带来额外的义务来处理类函数内部的情况