Php 提出问题

Php 提出问题,php,mysql,Php,Mysql,我正在做一个查询,向一个表中插入一些值,并更新其他表中的其他值,所有这些都在同一个函数中 我遇到的问题是Insert查询,执行后,请给出一个语法错误,您可以在下面看到 我检查了代码很多次,但没有发现任何错误。当我删除插入查询时效果很好,如果我删除取消更新查询并只保留插入查询,则会出现相同的错误 这里是问题 if (isset($_POST['goodalt']) && isset($_POST['gengood'])){ $goodalt = mysqli_real_es

我正在做一个查询,向一个表中插入一些值,并更新其他表中的其他值,所有这些都在同一个函数中

我遇到的问题是Insert查询,执行后,请给出一个语法错误,您可以在下面看到

我检查了代码很多次,但没有发现任何错误。当我删除插入查询时效果很好,如果我删除取消更新查询并只保留插入查询,则会出现相同的错误

这里是问题

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

}

有什么帮助吗?谢谢。

您面临的问题是因为不必要地使用了反勾号或单引号。您可以按照下面的文章进行更改,问题应该得到解决

文章

将这些更改为:

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

但您也应该使用准备好的语句和绑定变量…

除了形式错误之外,并发和线程模型还有一个大问题。 每次您在两个mysql的多个单独PHP调用中拆分INSERT/UPADATE时,您都可以仔细分析单独的查询是否保持DB一致

请仔细考虑执行相同PHP脚本的两个或多个web请求是否可以安全地并行运行,特别是在您执行以下操作的代码上:

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

Insert和Updates是原子的,但这里您调用两个独立的查询

put the outside。mysqli_查询$con,在用户帐户中插入用户名、帐户、genid、gen名称、日期、状态值“$username”、“$goodalt”、“$genid”、“$genname”、“$date”、“1”或mysqli_错误$con;为什么使用generator$genid作为表名?@Ajay谢谢,但不工作错误500@AtaurRahmanMunna因为每个生成器都有自己的表,我用id标识该表,例如:Generator1、generator2,这对我来说更容易;这与帮助相反!如果有疑问,请在回答之前进行测试!完成,但出现相同的错误,我不知道为什么在其他文件中使用相同的查询
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));