所以我正在编写这个小脚本,它将获取目录中仅包含文件夹名称的目录列表,并将它们插入到 sql 数据库的表中。我真的很接近,但是我将结果格式化为 sql 命令的多个条目的字符串变量,由于某种原因仅采用列表的最后一项。
令我困惑的是检查我的工作,我在获取目录列表等后回显 $speed,它看起来像(此文件夹),(另一个文件夹名称),(最后一个文件夹名称)等...如果我复制并在我的sql脚本中的VALUES后面粘贴它而不是$speed,它可以很好地插入列表,但是使用$speed变量,它只插入列表的最后一个,如上面的(最后一个文件夹名称)所示。这是我正在编写的脚本。任何帮助都将受到赞赏和尊重!
<?php
$iterator = new DirectoryIterator('FOLDER');
foreach ($iterator as $fileinfo) {
if ($fileinfo->isDir()) {
$speed = "(" . "'" . $fileinfo->getFilename() . "'" . ")" . "," . "\n";
echo $speed;
}
}
$servername = "localhost";
$username = "nathan";
$password = "mypasswrd";
$dbname = "datadatabase";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT IGNORE INTO senior_dir (studentcodedir)
VALUES $speed('andthis')";
// use exec() because no results are returned
$conn->exec($sql);
//echo "New record created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>`
注意:我知道这与这里的这篇文章类似,但我的遇到了一个障碍,想知道是否有人能了解我可能会发生什么:在 MySQL 表上插入一个 php 字符串作为多行
是的,它可以放在 foreach 内部,谢谢!