【发布时间】:2021-12-30 17:27:30
【问题描述】:
我到处寻找,但我仍然可以找到解决这个问题的方法。 我正在尝试在带有一些图像等的专用目录中生成 XML 文件。 但由于警告,我无法创建目录:Warning: mkdir(): Permission denied in C:\wamp64\www\motor\cpanel.php on line 52
/** create XML file */
function generisanje(){
$mysqli = OpenCon2();
$mysqli->query("SET NAMES 'utf8'");
$query = "SELECT CONCAT(Ime , Prezime) as Ime, Adresa, broj_Telefona, Drzava, Email, potrosac.id_Potrosaca, Mesto, postanski_Broj, vreme_Narucivanja, proizvodi.Boja, proizvodi.Naziv, proizvodi.Cena, proizvodi.Velicina, proizvodi.Priprema, proizvodi.Primer, proizvodi.Tip, proizvodi.Kolicina FROM potrosac JOIN proizvodi ON potrosac.id_Potrosaca=proizvodi.id_Potrosaca WHERE (SELECT DATE_FORMAT(potrosac.vreme_Narucivanja ,'%d-%m-%y'))=(SELECT DATE_FORMAT(SYSDATE(),'%d-%m-%y')) ";
$narudzbina = array();
//CONCAT(Ime , " ", Prezime)as Ime
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
array_push($narudzbina, $row);
}
if(count($narudzbina)){
createXMLfile($narudzbina);
}
/* free result set */
$result->free();
}
/* close connection */
$mysqli->close();
}
function createXMLfile($narudzbina){
$id="strasilo";
foreach ($narudzbina as $komad) {
$ime = strval($komad['Ime']);
mkdir("naruzbine ". date("d-m-Y")."/".$ime."", true);
}
}
在上面,您可以看到部分代码从 MySQL 获取查询并返回行,并根据行中的名称 (Ime) 创建目录。 我在我的 Windows 笔记本电脑上使用 WAMP。 这真的很奇怪,因为只要我使用数据库中的单个名称,它就可以工作。我需要将姓名和姓氏显示为目录名称,因此我需要 CONCAT 或将两个字符串放在一起,但每当我尝试类似的警告时,就会弹出这样的警告,我最终没有目录。
编辑:我确信 $ime 可以做到这一点。如果我改变 $ime = strval($komad['Ime']);至 $ime="一些字符串"; 一切都按原样运行,但这并不能算出我的用例。
感谢您的帮助!
【问题讨论】:
-
两件事:1)它可能没有创建您期望的目录,所以使用绝对路径。 2)确保运行网络服务器的用户对您正在创建的目录具有写入权限。
-
感谢您的帮助。 1)它像往常一样在我希望创建它的位置创建第一个目录,所以我猜路径没问题?问题是该目录内的其他目录。 2)如何在 WAMP 中检查?
-
您在编辑中做了哪些更改?看起来你刚刚取消了我所做的缩进改进。
-
对不起,如果我这样做了。我添加了这句话:这真的很奇怪,因为只要我使用数据库中的单个名称,它就可以工作。我需要将名字和姓氏显示为目录名称,所以我需要 CONCAT 或将两个字符串放在一起,但是每当我尝试类似的警告时,我都会弹出目录。