首页 > 解决方案 > 'where子句'中的未知列'this'

问题描述

我已尽力在以前的线程中找到我的问题的答案,但只是找不到我需要的东西,我的 php 文档中有一个函数可以用 pre 更新用户表中的列(跟随(varchar)) - 定义的变量,当 a_username 与 sessionnaeme 匹配时,但是此函数返回错误“'where 子句'中的未知列'this'”这是表格布局:表格结构 我是 php 新手,因此非常感谢任何帮助!(对不起,如果问题不清楚,请提出您可能有的任何问题) php 函数如下。提前非常感谢!!

<?php
if(isset($_POST['submit'])) {
    $sessionname = $_SESSION['user'];
    $follow = mysqli_real_escape_string($conn, $_POST['addedname']);
    $sql = "UPDATE users SET follow =" .$follow. " WHERE a_username =".$sessionname."";
    $result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
    if($result !== false) {
        header("Location: ./Profile.php?Follow=success");            
        exit;
    } else {
             echo "Fail";
            }
}
?>

标签: phphtmlmysqlsql

解决方案


这是在 MySqli 中使用绑定参数的方法。

$query = "UPDATE users SET follow = ? WHERE a_username = ?";

 $stmt = $conn->prepare($query);
 $stmt->bind_param("ss", $_POST['addedname'], $_SESSION['user']);
 $stmt->execute();
 $result = $stmt->get_result();

 if(!$result->num_rows === 0){

   header("Location: ./Profile.php?Follow=success");            
   exit;

 } else {

   echo 'Fail';

 }

 $stmt->close();

这是使用 MySqli 进行参数化查询的出色初学者指南。将此链接加入书签并经常参考。 防止 SQL 注入


推荐阅读