升级到php7后,无法通过php从mysql检索和显示图像

升级到php7后,无法通过php从mysql检索和显示图像,php,mysql,Php,Mysql,我希望这个问题没有在其他地方发布/回答。搜索没有产生任何令人满意的结果,所以我张贴在希望有人能够帮助我 我使用下面的代码显示mysql数据库中的图像。用于与PHP5.6完美配合。今天我升级到php7,但我根本无法让它工作 显示错误消息: 无法获取数据: 这是代码。如果可以的话,请帮忙。我们将不胜感激 <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $conn = mysqli_connect($dbhost,

我希望这个问题没有在其他地方发布/回答。搜索没有产生任何令人满意的结果,所以我张贴在希望有人能够帮助我

我使用下面的代码显示mysql数据库中的图像。用于与PHP5.6完美配合。今天我升级到php7,但我根本无法让它工作

显示错误消息:

无法获取数据:

这是代码。如果可以的话,请帮忙。我们将不胜感激

    <?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysqli_error());
}
$sql = 'SELECT * FROM table ORDER BY id DESC LIMIT 5';

mysqli_select_db('my_db');
$retval = mysqli_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysqli_error());
}
while($row = mysqli_fetch_array($retval, mysqli_NUM))
{
    echo "{$row[0]}". "<em>" . "({$row[1]})"."</em>"."<br>";
}
mysqli_close($conn);
?>

谢谢所有有用的评论。我已经编辑了我的代码。它现在显示路径和图像文件名,但不显示图像。(images/avatars/filename.jpg)。修订后的守则如下:
    mysqli_select_db($conn, 'my_db');
    $retval = mysqli_query( $conn, $sql );
    if(! $retval )
    {
      die('Could not get data: ' . mysqli_error($conn));
    }
    while($row = mysqli_fetch_array($retval, MYSQLI_NUM))
    {
        echo "{$row[0]}". "<em>" . "({$row[1]})"."</em>"."<br>";
    }
    mysqli_close($conn);
?>
mysqli_select_db($conn,'my_db'); $retval=mysqli_查询($conn,$sql); 如果(!$retval) { die('无法获取数据:'。mysqli_错误($conn)); } 而($row=mysqli\u fetch\u数组($retval,mysqli\u NUM)) { 回显“{$row[0]}”。”({$row[1]})”; } mysqli_close($conn); ?> 嗨,伙计们。我设法使它工作起来。谢谢大家的帮助和耐心。根据建议,我改为“echo”。

回显“{$row[1]}”。"" . “({$row[2]})”

我想您已经交换了db链接和查询参数

$retval = mysqli_query( $sql, $conn );
应该是

$retval = mysqli_query( $conn, $sql );

我想您已经交换了db链接和查询参数

$retval = mysqli_query( $sql, $conn );
应该是

$retval = mysqli_query( $conn, $sql );

我相信您以前在php版本中使用过mysql_*()函数,升级到php7时改为mysqli

尽管mysqli的使用方式与mysql扩展非常相似,但也存在细微的差异

  • 您可以在创建连接时选择默认数据库
  • mysqli_query()中的连接和查询参数是反向的

  • 还有其他区别,所以在向mysql_*()函数添加字母
    i
    之前,请阅读文档

    我相信您以前的php版本中使用过mysql_*()函数,升级到php7时改为mysqli

    尽管mysqli的使用方式与mysql扩展非常相似,但也存在细微的差异

  • 您可以在创建连接时选择默认数据库
  • mysqli_query()中的连接和查询参数是反向的

  • 还有其他区别,所以在向mysql_*()函数添加字母
    i
    之前,请阅读文档

    代码中有一些错误

    • mysqli\u select\u db('my\u db')
      要求将db连接作为第一个参数
    • mysqli\u选择数据库($conn,'my\u db')
    但是,您可以同样轻松地使用所有4个参数:

    • $conn=mysqli_connect($dbhost,$dbuser,$dbpass,'my_db')
    参考:

    然后:

    • mysqli\u error()
      需要一个参数
    • mysqli\u错误($conn)
    然后:

    • mysqli\u query($sql,$conn)
      您需要反转这些,连接必须是第一个
    • mysqli\u查询($conn$sql)
    参考资料:

    可以肯定的是,
    table
    如果这是您真正的表名,那么它是一个MySQL保留字:

    所以用扁虱把它包起来

    $sql = 'SELECT * FROM `table` ORDER BY id DESC LIMIT 5';
    

    脚注:

    由于
    MYSQLI_NUM
    在PHP中是一个常量,因此
    MYSQLI_NUM
    在这里可能会失败,因此您可能需要将其全部设置为大写
    MYSQLI_NUM

    参考:

    附加说明:

    您的问题标题为“无法检索和显示图像”


    我看不出您希望在此处显示图像的位置,因为没有显示图像的
    。如图所示,您的代码不会自动显示图像,这就是
    的用途。

    您的代码中有一些错误

    • mysqli\u select\u db('my\u db')
      要求将db连接作为第一个参数
    • mysqli\u选择数据库($conn,'my\u db')
    但是,您可以同样轻松地使用所有4个参数:

    • $conn=mysqli_connect($dbhost,$dbuser,$dbpass,'my_db')
    参考:

    然后:

    • mysqli\u error()
      需要一个参数
    • mysqli\u错误($conn)
    然后:

    • mysqli\u query($sql,$conn)
      您需要反转这些,连接必须是第一个
    • mysqli\u查询($conn$sql)
    参考资料:

    可以肯定的是,
    table
    如果这是您真正的表名,那么它是一个MySQL保留字:

    所以用扁虱把它包起来

    $sql = 'SELECT * FROM `table` ORDER BY id DESC LIMIT 5';
    

    脚注:

    由于
    MYSQLI_NUM
    在PHP中是一个常量,因此
    MYSQLI_NUM
    在这里可能会失败,因此您可能需要将其全部设置为大写
    MYSQLI_NUM

    参考:

    附加说明:

    您的问题标题为“无法检索和显示图像”


    我看不出您希望在此处显示图像的位置,因为没有显示图像的
    。如图所示,您的代码不会自动显示图像,这就是
    的目的。

    启用PHP错误,以便您可以看到实际问题是什么:
    ini\u set('display\u startup\u errors',1);ini设置(“显示错误”,1);错误报告(-1)-可能您的MySQLi安装有问题。您是否也更新了mysql包?PHP7使用了另一个包。@Blake。非常感谢你。请查看我编辑的代码您正在使用
    mysqli\u fetch\u array()