好吧,我已经考虑过了,但我不想在不知道该怎么做的情况下开始.
我将提供基本的自动托管在我的托管帐户,当用户将检查网站,支付一个托管包使用PayPal和IPN做的事情。我已经准备好工作了。然而,我将如何键入一个脚本,它将在付款时自动创建一个文件夹,使用表WebDesign_HostingAccounts中的下一个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查询中,以检查下一个ID,然后上传欢迎页面?
任何基本的脚本都会有很大帮助!谢谢!
发布于 2015-03-01 18:08:13
我一直这样做,我以前的自由职业项目,我发现,从我的经验,作为一个不好的做法。
让我们先跳过public_html和Welcome.php部件..。
这里是“场景”部分
你想做的是:
下面是一个问题:如果您有两个客户机,同时请求相同的请求,那么怎么办?
客户端1期望下一个auto_increment ID是2 客户端2还期望下一个auto_increment ID是2(而不是3,因为数据库中还没有一个以2作为主ID的行,所以它还应该得到2)。
史诗般的部分是,如果客户端2首先完成它的请求。我确信Client 1也将很快完成它的过程,它将尝试创建一个基于AUTO_INCREMENT ID的文件夹,但是已经有一个基于AUTO_INCREMENT ID的现有文件夹。有多余的部分。史诗,失败。
--这是主要的事件,“解决方案”
我们换个方法吧,
搞什么鬼?如何从最近插入的行中获取AUTO_INCREMENT ID? 使用LAST_INSERT_ID(),这是MySQL中的内置函数,可以从最后插入的行中获取AUTO_INCREMENT ID,我猜是从最后一个表中获得您插入的某一行的AUTO_INCREMENT ID。下面是有关LAST_INSERT_ID()的阅读部分:
如果其他客户端也将一行插入到该表中,会产生冲突吗? 不,因为每个客户都有各自不同的会话。这意味着它只返回当前客户端最后插入行的自动增量ID,而不是全局引用。( 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
在一天结束时,最好是参考文档,以获得您需要的任何澄清。
不管怎么说,你的部分说:
然后在该文件夹中自动添加一个Public_HTML子文件夹并上传一个Welcome.PHP页面。
我希望我能帮你解决问题。现在让我们把更正传递给专家^_^
祝你今天愉快!
https://stackoverflow.com/questions/28796298
复制相似问题