Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库不更新值_Php_Mysql - Fatal编程技术网

Php 数据库不更新值

Php 数据库不更新值,php,mysql,Php,Mysql,我有一个表单,每个用户只能有一条记录。我用来确定用户是否有以前的提交的条件是由于某些原因没有写入数据库。非常感谢您的帮助 代码如下: <?php $user_id = $_SESSION['user_id']; $anthem1 = null; $cointoss2 = null; $firstscore3 = null; //$query $query = "SELECT * "; $query .= "FROM mypic

我有一个表单,每个用户只能有一条记录。我用来确定用户是否有以前的提交的条件是由于某些原因没有写入数据库。非常感谢您的帮助

代码如下:

<?php

    $user_id = $_SESSION['user_id'];
    $anthem1 = null;
    $cointoss2 = null;
    $firstscore3 = null;

    //$query

    $query  = "SELECT * ";
    $query .= "FROM mypicks ";
    $query .= "WHERE user_id = {$user_id} ";
    $result = mysqli_query($connection, $query);

        if (isset($result)) {

            //existing submission -  this is breaking it    
            if (isset($_POST['submit'])) {


                if (isset($_POST['anthem1'])) {
                     $anthem1 = $_POST['anthem1'];
                }       

                if (isset($_POST['cointoss2'])) {
                     $cointoss2 = $_POST['cointoss2'];
                }       

                if (isset($_POST['firstscore3'])) {
                     $firstscore3 = $_POST['firstscore3'];
                }   

                $query  = "UPDATE mypicks SET";
                $query .= "anthem1 = '{$anthem1}', ";
                $query .= "cointoss2 = '{$cointoss2}', ";
                $query .= "firstscore3 = '{$firstscore3}' ";
                $query .= "WHERE user_id = {$user_id} ";
                $result = mysqli_query($connection, $query);
            }

            }else{

            //new submission    
            if (isset($_POST['submit'])) {


                if (isset($_POST['anthem1'])) {
                     $anthem1 = $_POST['anthem1'];
                }       

                if (isset($_POST['cointoss2'])) {
                     $cointoss2 = $_POST['cointoss2'];
                }       

                if (isset($_POST['firstscore3'])) {
                     $firstscore3 = $_POST['firstscore3'];
                }   

                $query = "INSERT INTO mypicks (";
                $query .= " user_id, anthem1, cointoss2, firstscore3";
                $query .= ") VALUES (";
                $query .= "  '{$user_id}', '{$anthem1}', '{$cointoss2}', '{$firstscore3}'";
                $query .= ")";
                $result = mysqli_query($connection, $query);

                }   
            }
?>
根据:

失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象。对于其他成功的查询,mysqli_query()将返回TRUE

因此,
isset($result)
将始终为真。要查看
$result
是否为空,请根据以下说明使用
$result->num_rows

失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象。对于其他成功的查询,mysqli_query()将返回TRUE


因此,
isset($result)
将始终为真。若要查看
$result
是否为空,请首先使用
$result->num_rows

,因为设置后缺少空格

            $query  = "UPDATE mypicks SET";// Concats as SETanthem1
            $query .= "anthem1 = '{$anthem1}', ";
            $query .= "cointoss2 = '{$cointoss2}', ";
            $query .= "firstscore3 = '{$firstscore3}' ";
            $query .= "WHERE user_id = {$user_id} ";
其次,在v7d8dpo4的基础上,您需要执行类似$result->num_rows的操作,或者如果您希望获取和行计数。但这与你关于更新的问题无关


第三,您可以通过简单地通过phpmyadmin的UI或任何您想要的方式测试查询,来防止将来出现类似的错误。首先,设置后缺少一个空格

            $query  = "UPDATE mypicks SET";// Concats as SETanthem1
            $query .= "anthem1 = '{$anthem1}', ";
            $query .= "cointoss2 = '{$cointoss2}', ";
            $query .= "firstscore3 = '{$firstscore3}' ";
            $query .= "WHERE user_id = {$user_id} ";
其次,在v7d8dpo4的基础上,您需要执行类似$result->num_rows的操作,或者如果您希望获取和行计数。但这与你关于更新的问题无关


第三,您只需通过phpmyadmin的UI或任何您想要的方式测试查询,就可以防止将来出现类似错误

所有字段都已填充吗?如果isset返回false呢?您是否尝试在“SET”之后添加空格,看起来像是语法错误?所有字段是否都已填充?如果isset返回false呢?您是否尝试在“SET”之后添加空格,这看起来像是语法错误