gpt4 book ai didi

PHP 和 MYSQL 通过链接更新行

转载 作者:行者123 更新时间:2023-11-29 13:59:12 25 4
gpt4 key购买 nike

大家好,我正在开发一个网页,但我不知道为什么无法更新数据库中的值并显示它。

这是我的 PHP 页面显示链接的代码。点击后会调用另一个PHP程序进行更新,然后重新显示在显示PHP程序中。

echo "<td class='text pad center'>".$row['deleted']."&nbsp;&nbsp;</td>";
if ( $row['deleted'] == 'y' ) {
echo '<td class="text center"><a href="delete.php?id='.$row["id"].'">Restore</a>;&nbsp;&nbsp;</td>';
} else {
echo '<td class="text center"><a href="delete.php?id='.$row["id"].'">Delete</a>;&nbsp;&nbsp;</td>';
}

在我的更新程序中,我有这段代码,它将在我的数据库中执行更新,然后发送要重新显示的新值。

$id=$_GET['id'];

$sql_query = "SELECT * FROM tablename WHERE id = '$id'";
//Run our sql query
$result = mysqli_query($link, $sql_query) or die('select query failed'. mysqli_error($link));

while ($row = mysqli_fetch_assoc($result)) {
if ( $row['deleted'] == 'y' ) {
$change = "UPDATE inventory SET DELETED = 'n' WHERE id = '$id'";
} else {
$change = "UPDATE inventory SET DELETED = 'y' WHERE id = '$id'";
}
echo "$change";
mysqli_query($link, $change) or die('select query failed'. mysqli_error($link));
}

//Free resultset (optional)
mysqli_free_result($result);

//Close the MySQL Link
mysqli_close($link);

header("Location: display.php");

我找不到我的错误。

最佳答案

由于两个原因,您的代码目前面临很大的风险。首先是经典的SQL Injection problem ,第二个 never use GET to change things 。此外,您的代码相当多地违反了 DRY。

尝试这个重写:

echo "<td class='text pad center'>".$row['deleted']."&nbsp;&nbsp;</td>";
echo '<td class="text center"><a href="delete.php?id='.$row["id"].'">'.($row['deleted']=='y'?'Restore':'Delete').'</a>;&nbsp;&nbsp;</td>';

还有:

// IMPORTANT: Make sure you didn't forget to connect!
$id=mysqli_real_escape_string($link,$_GET['id']);
mysqli_query($link,"UPDATE tablename SET deleted=IF(deleted='y','n','y') WHERE id='$id'")
or die('update query failed'. mysqli_error($link));
header("Location: display.php");

请注意,您实际上应该使用 01 作为 bool 值,而不是 ny。如果执行此操作,您可以将 deleted=IF(...) 部分替换为 deleted=1-deleted 进行切换。

关于PHP 和 MYSQL 通过链接更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com