- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试将信息插入表中并在一个字符串中更新另一个表(在同一数据库中)中的两行。我的印象是,您可以通过在每次尝试后添加一个分号来非常简单地完成此操作,并且它会在同一字符串中单独对它们进行操作。
我想不出任何其他方法来达到在“游戏”表中插入数据并同时更新“玩家”表中两个唯一行中的数据的预期效果。
这是我的代码...
<?php
include_once('database-details.php');
$winner = mysqli_real_escape_string($db, $_REQUEST['winner']);
$loser = mysqli_real_escape_string($db, $_REQUEST['loser']);
$balled = mysqli_real_escape_string($db, $_REQUEST['balled']);
$fixtures = 'games';
$table = 'players';
$sql = "INSERT INTO `$fixtures` "
. "(`id`, `winner`, `loser`, `balled`) VALUES "
. "(NULL, '$winner', '$loser', '$balled') ;"
. "UPDATE `$table` SET apps = apps + 1, wins = wins + 1, balled = balled + $balled WHERE id = $winner ;"
. "UPDATE `$table` SET apps = apps + 1, losses = losses + 1, balled = balled - $balled WHERE id = $loser";
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
$response = (object)array('status' => 'error');
if($result){
$response = (object)array(
'status' => 'ok',
'id' => $db->insert_id,
);
}
header('Content-type: application/json');
echo json_encode($response);
?>
脚注...使用ajax提交表单,然后在前端更新内容。我可以确认提交工作正常,当我测试了所有三个单独提交的请求中只有一个并且每个都工作正常时。只有当我将它们组合在一起时它才会中断。
预先感谢您的帮助。
最佳答案
您是否必须在同一个查询中执行更新查询?
也没有意义
$response = (object)array('status' => 'error');
if($result){
因为你已经在上面那行停止了脚本的执行
if(!$result = $db->query($sql)){
也许试试:
<?php
include_once('database-details.php');
$winner = mysqli_real_escape_string($db, $_REQUEST['winner']);
$loser = mysqli_real_escape_string($db, $_REQUEST['loser']);
$balled = mysqli_real_escape_string($db, $_REQUEST['balled']);
$fixtures = 'games';
$table = 'players';
$sql = "INSERT INTO `$fixtures` "
. "(`id`, `winner`, `loser`, `balled`) VALUES "
. "(NULL, '$winner', '$loser', '$balled') ;"
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
else{
$insertid = $db->insert_id
$sql = "UPDATE `$table` SET apps = apps + 1, wins = wins + 1, balled = balled + $balled WHERE id = $winner ;"
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
$sql = "UPDATE `$table` SET apps = apps + 1, losses = losses + 1, balled = balled - $balled WHERE id = $loser";
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
$response = (object)array(
'status' => 'ok',
'id' => $insertid ,
);
}
header('Content-type: application/json');
echo json_encode($response);
?>
如果您在一个查询中运行多个 sql 语句,则根据您的 $db 类,您的 insert_id 值可能不是您所期望的值。
关于php - 多个 MySql 插入和更新未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132179/
我对java有点陌生,所以如果我犯了一个简单的错误,请原谅我,但我不确定我哪里出错了,我收到的错误是“预期的.class,预期的标识符,而不是声明, ';'预期的。”我尝试了不同的方法,并从这些方法中
This question already has answers here: chai test array equality doesn't work as expected (3个答案) 3年前
我正在学习 Java(对不起,我的英语很差,这不是我的母语),当我在 Eclipse (JavaSE-1.7) 中在我输入的每个“try”中执行“try-finally” block 时,会出现以下消
我收到两个错误,指出 token 上的语法错误,ConstructorHeaderName expected instead & token “(”上的语法错误,< expected 在线: mTM.
我找不到错误。 Eclipse 给我这个错误。每个 { } 都是匹配的。请帮忙。 Multiple markers at this line - Syntax error on token “)”,
代码: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class DoubleIt extends
我正在用 python(Vs 代码)编写代码,但出现此错误: Expected ")" Pylance 错误发生在:def main() 我试着运行我的 main 并将它打印到我的屏幕上。我用谷歌搜
我正在尝试按照 documentation 中的建议使用异步函数。但我收到此错误 意外的 token ,预期 ( async function getMoviesFromApi() { try
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
第一行包含一个表示数组长度的整数p。第二行包含用空格分隔的整数,这些整数描述数组中的每个元素。第三行打印一个整数,指示负数组的数量。 package asgn3; import java.util.*
好的,我是初学者,我必须修复此 java 表达式语言代码才能在我的系统 (Windchill) 中工作,但看起来我在语法中遗漏了一些内容: LWCNormalizedObject lwc =
我无法编译我的程序! 我想我缺少一个花括号,但我怎么也看不出在哪里! import javax.swing.*; import java.awt.*;
我的 jQuery 代码有问题,我的 Firebug 向我发出警告:需要选择器。 这是代码: $("img[id$='_tick']").each(function() { $(this).c
我的新类(class) Fountainofyouth 遇到了问题。尝试构建整个项目后,调试器显示 warning: extended initializer lists only available
我已经从 Java 转向 CPP,并且正在努力围绕构造构造函数链进行思考,我认为这是我的问题的根源。 我的头文件如下: public: GuidedTour(); GuidedTour(string
鉴于以下 for(var i=0; i< data.cats.length; i++) list += buildCategories(data.cats[i]); jsLint 告诉我 Expect
我有这个 json,但 Visual Studio Code 在标题中给了我警告。 [ { "title": "Book A", "imageUrl": "https:
我正在尝试编写一个有条件地禁用四个特殊成员函数(复制构造、移动构造、复制赋值和移动赋值)的包装类,下面是我用于测试目的的快速草稿: enum class special_member : uint8_
所以我用 F# 编写了一个非常简单的程序,它应该对 1000 以下的所有 3 和 5 的倍数求和: [1..999] |> List.filter (fun x -> x % 3 = 0 || x %
我是一名优秀的程序员,十分优秀!