我試圖插入信息到一個表中,並在一個字符串中更新另一個表(在同一個數據庫中)的兩行。我的印象是,你可以簡單地通過在每次嘗試後添加一個分號來做到這一點,它會在同一個字符串內單獨執行。多個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