来自php的mysql查询只执行第一个查询

snvhrwxg  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(201)

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

<?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: .");
?>

第一个查询删除工作,但第二个更新没有,我的代码有什么问题?它重定向到标题“精细”。

mspsb9vt

mspsb9vt1#

首先,您的代码容易受到sql注入的攻击。我建议在把你的输入传输到数据库之前先清理一下。
我想你的第二个问题有错

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

用户名应该是user\ id。因为查询找不到匹配的记录,所以看起来好像什么都没有执行。
您可以通过检查mysqli\u查询的返回值来验证这一点。
失败时返回false。如果选择、显示、描述或解释查询成功,mysqli\u query()将返回mysqli\u result对象。对于其他成功的查询,mysqli\u query()将返回true。

相关问题