我正在执行查询以将一些值插入表中并更新其他表中的其他值,所有这些都在同一函数中进行。
我遇到的问题是插入查询,当执行时,给我一个语法错误,您可以在下面看到。
我多次检查了代码,但没有看到任何错误。当我删除插入查询时工作正常,如果我删除更新查询并仅保留插入,则会出现相同的错误。
这里是查询
if (isset($_POST['goodalt']) && isset($_POST['gengood'])){
$goodalt = mysqli_real_escape_string($con, $_POST['goodalt']);
$genid = mysqli_real_escape_string($con, $_POST['gengood']);
$res = mysqli_query($con, "SELECT * FROM `generators` WHERE `name` = '$genid'") or die(mysqli_error($con));
while($row = mysqli_fetch_assoc($res)) {
$genname = $row['name'];
}
mysqli_query($con, "INSERT INTO `user_accounts` (`username`, `accs`, `genid`, `gen-name`, `date`, `status`) VALUES ('$username', '$goodalt', '$genid', '$genname', '$date', '1'") or die(mysqli_error($con));
mysqli_query($con, "UPDATE `generator$genid` SET `status` = '3' WHERE `alt` = '$goodalt'") or die(mysqli_error($con));
}
有什么帮助吗?谢谢。
最佳答案
除了形式错误之外,还有一个关于并发和线程模型的大问题。 每次你在更独立的PHP调用两个mysql中拆分INSERT/UPADATE时,你可以仔分割析单独的查询是否保持数据库一致。
仔细考虑两个(或更多)Web 请求(执行相同的 PHP 脚本)是否可以安全地并行运行,尤其是在您执行的代码上:
mysqli_query($con, "INSERT INTO `user_accounts` (`username`, `accs`, `genid`, `gen-name`, `date`, `status`) VALUES ('$username', '$goodalt', '$genid', '$genname', '$date', '1'") or die(mysqli_error($con));
mysqli_query($con, "UPDATE `generator$genid` SET `status` = '3' WHERE `alt` = '$goodalt'") or die(mysqli_error($con));
插入和更新是原子的,但在这里您调用两个单独的查询
关于php - 提出一个查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224265/