好吧所以我对此有一点想法,但我并不想在不知道自己会怎么做的情况下开始......
我将在我的托管帐户上提供基本的自动托管,用户将检查网站,使用PayPal支付托管包,IPN会执行其操作。我已经到位并且正在工作。但是,如何键入将在付款时自动生成的脚本 - 使用表AUTO_INCREMENT #ID
中的NEXT WebDesign_HostingAccounts
编号创建文件夹。因此,如果要使用的下一个ID是#0005,则该文件夹将命名为' 0005'然后在该文件夹中自动添加Public_HTML子文件夹并上传Welcome.PHP页面。
我知道这与以下脚本片段有关:
<?php
// Desired folder structure
$structure = './depth1/depth2/depth3/';
// To create the nested structure, the $recursive parameter
// to mkdir() must be specified.
if (!mkdir($structure, 0777, true)) {
die('Failed to create folders...');
}
// ...
?>
但是我如何将其添加到MySQL Query中以检查下一个ID然后上传欢迎页面?
任何基本脚本都会有很大帮助!谢谢!
答案 0 :(得分:0)
我一直在回到以前的自由职业项目,我从我的经历中发现这是一个不好的做法。
让我们先跳过public_html和Welcome.php部分......
这是&#34;场景&#34;部分强>
您要做的是:
现在问题是:如果您有2个客户并同时请求相同的请求怎么办?
客户端1期望下一个auto_increment ID为2
客户端2还期望下一个auto_increment ID为2(不是3,因为数据库中还没有 2 作为主ID,所以它也应该得到的 2 强>)。
史诗部分是,如果客户2首先完成其请求。我非常确定客户端1也将很快完成其过程,并且它将尝试创建基于AUTO_INCREMENT ID的文件夹,但是已经存在基于AUTO_INCREMENT ID的现有文件夹。有冗余部分。史诗,失败。
这是主赛事,&#34;解决方案&#34;
让我们以另一种方式做到这一点,
到底是什么?如何从最近插入的行中获取AUTO_INCREMENT ID?&#34;
使用LAST_INSERT_ID(),这是MySQL中的一个内置函数,用于从最后一个插入某一行的表中获取最后插入的行(我猜)的AUTO_INCREMENT ID。 现在这里是关于这个LAST_INSERT_ID()事情的阅读部分:
如果其他客户也在该表中插入了一行,是否会发生冲突?
不,因为每个客户都有自己独特的会话。这意味着它只返回当前客户端的最后一个插入行的自动增量ID,而不是全局引用。 (Hooray for MySQL引擎!)
多插入查询警告
LAST_INSERT_ID()返回第一个插入行的ID,如果您正考虑使用这样的多插入查询:
INSERT INTO mytable(name, age)
VALUES
("Mark Hernandez", 25),
("Allen Linatoc", 20)
;
它只会返回您在多插入查询中指定的第一个行的插入ID。
您可以使用php mysql_insert_id
更快地完成此操作。
我不知道你正在使用什么数据库抽象/扩展(PDO,MySQL,MySQLi),但这里是PHP原生mysql扩展的一个例子:http://php.net/manual/en/function.mysql-insert-id.php < / p>
在一天结束时,总是最好参考文档以获得您需要的任何说明。
无论如何,你的部分说:
然后在该文件夹中自动添加Public_HTML子文件夹并上传Welcome.PHP页面。
我希望我能帮助你解决问题。 现在让我们将更正传递给专家^ _ ^
祝你有个美好的一天!