【发布时间】:2020-07-31 06:04:36
【问题描述】:
此代码回显指定目录中的所有文件名,但仅将文件夹中最后一个文件的名称插入数据库。我必须做什么才能将目录中的所有文件名放入数据库?非常感谢
<?php
$servername = "localhost";
$username = "root";
$password = "mypswrd";
$dbname = "mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$dir = "myFiles"; // directory path to files
// Open a directory, and read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo $file . "</br>";
$sql = "INSERT INTO myTable (fileName) VALUES ('$file')";
}
closedir($dh);
}
}
if ($conn->query($sql) === true) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
【问题讨论】:
-
执行插入的代码部分不是
$sql = "INSERT INTO myTable (fileName) VALUES ('$file')";,而是($conn->query($sql)。顺便说一句,你最好放弃那些教你将原始输入注入 SQL 代码的书或教程,如('$file')。 -
感谢您的评论和帮助。是的,我意识到我需要添加一些验证。我有很多东西要学! (此脚本仅用于帮助我在本地网络上构建数据库。)