Mysql不会使用php插入查询

时间:2016-02-19 05:00:26

标签: php mysql

这可能听起来很愚蠢(也许是因为它)但我在插入查询中遇到了这么多问题,这就是事情,我在我的第一页中有一个插入表中的查询,问题在于我的page2,我有完全相同的查询,但在这个页面不起作用,最奇怪的是我在查询的真实语句中回显了一条消息并且它回响,这意味着该查询据说已经完成,但是不,因为当我检查数据库时,不存在,还有其他的东西!如果我想更新价值,它可以工作!,但不是在创造,我不知道为什么,但困扰我很多!,如果有人可以帮助我,我真的很感激,谢谢。

以下是代码:

      if($radio==2){
        echo $_SESSION["in"];
        $sqlb = "SELECT * FROM table WHERE idus='$idus';";
        $resb = mysqli_query($con, $sqlb);
        $res_b = mysqli_fetch_array($resb);

        if( !$res_b)  {//if not exist on table, create
             $sqly="INSERT INTO table (x,y,z)
             VALUES ('$x','$y','$z');";  
            if ($con->query($sqly) === TRUE) {
                $_SESSION["in"]=1;
            } else { 
                echo "Error: " . $sqly . "<br>" . $con->error;
            }

        }else{ //update if exist on table
            $sqly="UPDATE table
            SET y='$y',z='$z'
            WHERE idus='$idus';";  
            if ($con->query($sqly) === TRUE) {
            } else { 
                echo "Error: " . $sqly . "<br>" . $con->error;
            }

        }

        header('Location: page2.php');
    }  

奇怪的是,在执行查询时传递true并且什么也不做,也就是在将完全相同的查询直接粘贴到DB中时,它可以工作。

5 个答案:

答案 0 :(得分:3)

很难分辨,因为我们看不到所有的代码,但我认为你应该替换这些代码,使用下面几行的更新查询作为参考:

$sqly="INSERT INTO table (x,y,z)
             VALUES (x,y,z);";  

要:

$sqly="INSERT INTO table (x,y,z)
             VALUES ('$x','$y','$z');";  

解释:x,y和z未定义为SQL变量,但在下面的另一个查询中,您将它们用作php变量,因此我更新了代码,将它们放在应有的位置。希望它有所帮助。

答案 1 :(得分:0)

仔细检查列名称和属性。可能是x列是错误的,如果更新有y,z工作正常。

答案 2 :(得分:0)

我没有正确理解这个问题,而是通过查看你的代码。您可以使用INSERT...ON DUPLICATE查询来实现相同的行为。 see more here

if($radio==2){
        echo $_SESSION["in"];
        $sqlb = 'INSERT INTO table (x,y,z) VALUES ($x, $y, $z) ON DUPLICATE KEY UPDATE x=$x, y=$y, z=$z';
        if ($con->query($sqlb) === TRUE) {
            $_SESSION["in"]=1;
        } else { 
            echo "Error: " . $sqlb . "<br>" . $con->error;
        }

        header('Location: page2.php');
}  

答案 3 :(得分:0)

检查变量$ x,$ y,$ z变量。 如果它不是空的,那么您的代码将起作用,否则插入不起作用

答案 4 :(得分:0)

我不知道究竟是什么问题,但我通过删除所有数据库结构来修复它,然后重新做一遍,感谢您的帮助!