glob()期望参数1是有效路径

时间:2017-12-07 09:05:29

标签: php mysql

我正在尝试检索从数据库保存的目录并打开该目录中的所有图像。问题是,当我运行代码时,结果是“警告: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>'."&nbsp;&nbsp;";
}
?>

这是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);
?>

2 个答案:

答案 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>'."&nbsp;&nbsp;";
}

?>

成功从数据库中检索目录并显示其中的文件。