来自PHP的MySQL查询仅执行第一个查询

时间:2018-04-30 19:06:49

标签: php mysql

我在以下代码中遇到问题:

<?php 
session_start();
$user_id = $_SESSION['user_id'];
?>
<?php  #insert new tweets 
if($user_id){
if($_POST['post_id']!=""){
    include 'connect.php';
    mysqli_query($conn,"Delete from post where id=".$_POST['post_id']."");
    mysqli_query($conn, "UPDATE users
                 SET post = post - 1
                 WHERE username=$user_id");

    }
}
header("Location: .");
?>

第一个查询删除有效,但第二个更新没有,我的代码有什么问题? 它重定向到标题很好。

1 个答案:

答案 0 :(得分:0)

首先,您的代码容易受到SQL Injections的攻击。在将数据传输到该数据库之前,我建议首先清理您的输入。

我认为您的第二个查询中有拼写错误

UPDATE users SET post = post - 1 WHERE username=$user_id;

用户名应该是user_id。由于查询无法找到匹配的记录,因此看起来好像没有执行任何操作。

您始终可以通过检查mysqli_query的返回值来验证这一点。

  

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。