我对在PHP中一次提交多个请求持怀疑态度。我有一个php函数,比如insertOrder()来将详细信息插入数据库表并向用户发送通知。详细信息将从另一个来源自动发布到此功能。这些是insertOrder()中的步骤
问题在于,有时系统会同时将具有相同id的数据发送到inserOrder()。此时,从OrderId=123
始终为0的数据库表中选择订单计数,以便尝试将两个post详细信息插入到数据库表中。即使我正在使用mysql事务,它也在插入重复的行。原因可能是什么?如果有人知道,请帮我整理一下。
下面是inserOrder()的两个示例数据
{orderid:123,status:pending}
{orderid:123,status:completed}
当我们第一次将数据放入insertOrder()时,数据库表中将不存在订单ID123,因此它将将其插入到数据库表中,第二次它应该更新数据库表值。因为它同时获取这两个数据,所以它将插入到数据库表中。
这是insertOrder的代码段
function insertOrder()
{
$orderId = $_POST['orderId'];
try
{
start transaction
$order = select from table where orderId=$orderId
if(count($order) == 0)
Insert the order
commit
else
update order where orderId=$orderId
}
catch()
{
rollback
}
}
如果可以插入具有重复ID的行,则此列没有unique
约束。如果使其唯一,则最后一个事务将无法提交。
为此您至少有两个选项:
ALTER TABLE table_name ADD PRIMARY KEY (id);
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (id);
请注意,允许客户端为插入的记录选择ID是不常见的。大多数时候,您应该允许DB为诸如Orders之类的实体选择下一个ID。
这是在收到以db为单位的帖子列表后发送带有每个帖子链接数据的POST请求的代码。 在使用每个链接请求帖子后,从回复中提取playerCount并将其更新到每个帖子。 我在这段代码中使用Resttemplate,但有一个问题需要花费太长时间。 所以我想把这个代码改为一次发送一个请求,并在所有请求完成后更新每个帖子。 我怎样才能把这个代码转换成我想要的? 我将使用此代码作为计划任务。
是否可以在同一个对话框中同时请求多个权限,比如读联系人、读短信和写外部存储? 如果是,如何做到?请提供一个例子。 我已经在网上搜索了几个小时,但找不到方法。请帮忙!
是否可以在webclient上将多个请求链接在一起?例如,我希望在进行交易时能够更新买方和卖方的余额。现在它只更新买家余额: 是否有一种方法可以将两个put方法调用在一起,以便更新两个余额? 更新:此方法适用于将单声道值作为uri变量调用。
问题内容: 如果PHP引擎已经在服务器上执行脚本的过程中,其他同时向同一脚本发出的浏览器请求又会如何? 请求会排队吗? 他们会被忽略吗? 每个请求都会有自己的脚本实例吗? 还有其他可能性吗? 问题答案: 根据服务器的配置,服务器通常可以同时处理 数百个请求 -如果使用Apache,则 配置选项就是这样: 该指令设置了将同时服务的请求数的限制。 任何超出 限制的连接尝试 通常都会排队,最多可以排队一
问题内容: 我目前在PHP上大量使用Curl。每次获取大约100页的结果需要花费大量时间。对于每个请求,我都使用这样的代码 我有什么选择可以加快速度? 我应该如何使用等? 问题答案: 重用相同的cURL处理程序($ ch),而无需运行curl_close。这将加快速度。 使用curl_multi_init并行运行进程。这会产生巨大的影响。
问题内容: 我正在创建一个需要ListView的应用程序,其中的元素数量不确定,每个元素都有一个从可变数量开始倒数的计时器。我能够成功地使 其中 之一倒计时,但是我不知道如何在ListView的每个元素中包括一个计时器。 我目前正在使用CountDownTimer(如果从网站复制,请确保将D大写,因为它们有误)。 任何向我指出正确方向的代码或资源都将受到赞赏。 这是我当前的EventAdapter