我正在尝试检索从数据库保存的目录并打开该目录中的所有图像。问题是,当我运行代码时,结果是“警告:glob()期望参数1是一个有效的路径,在第5行的C:\ xampp \ htdocs \ try \ test.php中给出的对象”。顺便说一下,我刚开始使用php而且我还不够熟悉它。任何帮助将不胜感激。感谢。
这是我在test.php中的代码
<?php
require_once 'config.php';
$path = 'SELECT directory FROM path WHERE id = 1';
$files = glob($link, $path);
for ($i=0; $i<count($files); $i++)
{
$num = $files[$i];
echo '<a href="'.$num.'"><img src="'.$num.'" alt="random image" style="width:300px;height:200px;"></a>'." ";
}
?>
这是config.php
<?php
session_start();
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'sam');
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
?>
答案 0 :(得分:1)
您似乎误解了glob()
的目的以及如何使用PHP执行MySQL查询。
glob()
不会执行MySQL查询。 glob()
检查当前目录中的文件。点击此处的链接http://php.net/manual/en/function.glob.php。
您需要做的是研究如何执行MySQL语句并解析返回的值。
查看此问题,它解释了如何使用PDO
执行MySQL查询:PDO MYSQL PHP prepare() and execute()。
这解释了如何在执行PDO查询后检索值:return one value from database with mysql php pdo。
答案 1 :(得分:1)
这解决了这个问题。
<?php
$conn = new PDO('mysql:host=localhost;dbname=sam', 'root', '');
$q= $conn->query("SELECT directory FROM path WHERE id='1'");
$result = $q->fetchColumn();
$path = glob($result);
for ($i=0; $i<count($path); $i++)
{
$num = $path[$i];
echo '<a href="'.$num.'"><img src="'.$num.'" alt="random image" style="width:300px;height:200px;"></a>'." ";
}
?>
成功从数据库中检索目录并显示其中的文件。