我试图插入信息到一个表中,并在一个字符串中更新另一个表(在同一个数据库中)的两行。我的印象是,你可以简单地通过在每次尝试后添加一个分号来做到这一点,它会在同一个字符串内单独执行。多个MySql插入和更新未按预期方式运行
我想不出任何其他方式来实现在'游戏'表中插入数据并同时更新'players'表中两个唯一行中的数据的预期效果。
这里是我的代码...
<?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提交更新,然后在前端的内容。我可以确认提交工作正常,只有一个要求我已经测试了所有三个个人提交,并且工作正常。它只有当我结合他们时才会被打破。
非常感谢您的帮助。
从这里阅读:http://php.net/manual/en/mysqli.quickstart.multiple-statement.php它似乎应该使用mysqli_multi_query() – 2014-10-01 00:23:30
只是尝试过你提供的链接,它似乎已经做到了!感谢您的提供。 – 2014-10-01 00:33:53