php - 提出一个查询问题

标签 php mysql

我正在执行查询以将一些值插入表中并更新其他表中的其他值,所有这些都在同一函数中进行。

我遇到的问题是插入查询,当执行时,给我一个语法错误,您可以在下面看到。

capture

我多次检查了代码,但没有看到任何错误。当我删除插入查询时工作正常,如果我删除更新查询并仅保留插入,则会出现相同的错误。

这里是查询

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/

相关文章:

Mac 上的 MySQL 5.7.17 root 密码忘记/无法访问 mysql 命令行

mysql - 使用日期排名

mysql - 数据库条目的优先选择

PHP 撤消按钮

php - 从AJAX发送到php文件时如何区分表单数据和jQuery变量?

php - 返回两个 PHP DatePeriods 之间的重叠分钟数

范围内的php随机数 - 不重复

php - 在我可以发布我的网站之前,我需要多少网络安全知识?

php - 如何知道codeigniter php框架中哪个字段名是哪个表

php - 使用 PHP 打印 MySQL 数据库中的元素作为相应图像的链接