PHP未更新MySQL表格

3

我刚接触PHP,想创建一个脚本,如果用户需要更新他们的名字和姓氏,就可以更新。我有下面的代码,它最终在settings.inc.php页面上回显出UPDATE fixableusers SET first='trenton' WHERE id='6',但它没有更新表格。这是为什么没有更新表格的原因?

<?php
include_once('dbh.php');

session_start();
$userSession = $_SESSION['id'];

if(isset($_SESSION['id'])) {
    $postTest = $_POST['first'];
    $sql = "UPDATE fixableusers SET first='$postTest' WHERE id='$userSession'";
} else {
    echo 'Do something else';
}

我的dbh.php文件包含以下代码:

<?php

$conn = mysqli_connect('localhost', 'root', 'root', 'users');

你在dbh.php文件中有什么内容? - Taki
"WHERE id='$userSession'";在数据库中尚不存在。 - chop62
你执行了那个查询吗? - Beginner
你没有执行 SQL 查询,你选择了数据库吗? - developerbh
3
请使用预处理语句来修复你的 SQL 注入漏洞(通过 post 传递恶意内容)。现在开始养成好习惯是非常有必要的。 - erik258
1
https://dev59.com/oHVD5IYBdhLWcg3wL4cA - erik258
3个回答

5

您正在排除mysqli_query函数,

在构建$sql之后添加此mysqli_query($conn, $sql);


1
在您的if语句中,您只是声明变量,为了实际执行查询,您需要:
if(isset($_SESSION['id'])) { $postTest = $_POST['first']; $sql = "UPDATE fixableusers SET first='$postTest' WHERE id='$userSession'"; mysqli_query($conn, $sql); }

并且您需要改进此内容(处理错误等)


1
<?php
// Connect your DB
include_once('dbh.php');

//Start Session    
session_start();

if(isset($_SESSION['id'])) {

// Update Query
$updateqry = "UPDATE fixableusers SET first='".$_POST['first']."' WHERE id='".$_SESSION['id']."'";
mysqli_query($conn, $updateqry);

} else {

        echo 'Do something else';
}

?>

1
请在代码中添加一些解释,以便原帖作者和其他读者能够理解您的代码。原帖作者是初学者,这个网站上也有很多其他初学者。 - beerwin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接