发出查询问题

时间:2017-05-28 05:51:56

标签: php mysql

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

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

capture

我多次查看代码,但我没有看到任何错误。当我删除插入查询工作正常,如果我删除de更新查询,只留下插入给我相同的错误。

这里是查询

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));

}

有任何帮助吗?感谢。

3 个答案:

答案 0 :(得分:1)

除了表单错误之外,还有一个关于并发和线程模型的大问题。 每次将INSERT / UPADATE拆分为更多单独的PHP调用两个mysql时,如果单独的查询保持DB一致,则可以分析CAREFULLY。

仔细考虑两个(或更多)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));

插入和更新是原子的,但在这里你调用两个单独的查询

答案 1 :(得分:0)

您遇到的问题是因为不必要地使用反引号或单引号。您可以按照以下文章进行更改,并且应该整理问题。

文章here

更改以下内容:

 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, "INSERT INTO user_accounts (username, accs, genid, gen-name, date, status) VALUES ('$username', '$goodalt', '$genid', '$genname', '$date', '1'") or die(mysqli_error($con));

希望有所帮助!

答案 2 :(得分:0)

你错过了插页中的近距离......

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));

但你也应该使用预准备语句和绑定变量......

相关问题