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”之后添加空格,这看起来像是语法错误