升级到php7后,无法通过php从mysql检索和显示图像
我希望这个问题没有在其他地方发布/回答。搜索没有产生任何令人满意的结果,所以我张贴在希望有人能够帮助我 我使用下面的代码显示mysql数据库中的图像。用于与PHP5.6完美配合。今天我升级到php7,但我根本无法让它工作 显示错误消息: 无法获取数据: 这是代码。如果可以的话,请帮忙。我们将不胜感激升级到php7后,无法通过php从mysql检索和显示图像,php,mysql,Php,Mysql,我希望这个问题没有在其他地方发布/回答。搜索没有产生任何令人满意的结果,所以我张贴在希望有人能够帮助我 我使用下面的代码显示mysql数据库中的图像。用于与PHP5.6完美配合。今天我升级到php7,但我根本无法让它工作 显示错误消息: 无法获取数据: 这是代码。如果可以的话,请帮忙。我们将不胜感激 <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $conn = mysqli_connect($dbhost,
<?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扩展非常相似,但也存在细微的差异
还有其他区别,所以在向mysql_*()函数添加字母
i
之前,请阅读文档 我相信您以前的php版本中使用过mysql_*()函数,升级到php7时改为mysqli
尽管mysqli的使用方式与mysql扩展非常相似,但也存在细微的差异
还有其他区别,所以在向mysql_*()函数添加字母
i
之前,请阅读文档 代码中有一些错误
要求将db连接作为第一个参数mysqli\u select\u db('my\u db')
mysqli\u选择数据库($conn,'my\u db')
$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
参考:
我看不出您希望在此处显示图像的位置,因为没有显示图像的
。如图所示,您的代码不会自动显示图像,这就是
的用途。您的代码中有一些错误
要求将db连接作为第一个参数mysqli\u select\u db('my\u db')
mysqli\u选择数据库($conn,'my\u db')
$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()