PHP查询代码禁用其他查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP查询代码禁用其他查询相关的知识,希望对你有一定的参考价值。

我有两个查询,一个用于填充我的表,另一个用于控制每行的删除按钮。当我在代码中有删除按钮查询时,它会禁用该表并使其为空。关于为什么会发生这种情况的任何想法?

这是代码:

// Queries

$delquery = "DELETE FROM mods WHERE id = '$id'";
$delete = $conn->query($delquery) or die(mysqli_error($conn));

// Run queries and actions

if (isset($_POST['delete'])) {
   echo $delete;
}

// Table population

$query = "SELECT * FROM mods";
$result = $conn->query($query) or die(mysqli_error($conn));
答案

因为无论条件如何都清空表。

将前两行代码放在if语句中。

另一答案

你的if (isset($_POST['delete'])) {条件应该包含整个删除查询逻辑 - 尤其是MySQL查询 - 而不仅仅是echo语句。否则,无论何时加载该代码,您都将始终删除该表。试试这个:

if (isset($_POST['delete'])) {
  // Queries
  $delquery = "DELETE FROM mods WHERE id = '$id'";
  $delete = $conn->query($delquery) or die(mysqli_error($conn));

  // Run queries and actions
  echo $delete;
}

// Table population
$query = "SELECT * FROM mods";
$result = $conn->query($query) or die(mysqli_error($conn));

我还建议重新编写if逻辑,这样在运行时没有使用$_POST['delete']除了使用array_key_exists设置isset时不会抛出索引而不设置错误:

if (array_key_exists('delete', $_POST) && isset($_POST['delete'])) {
  // Queries
  $delquery = "DELETE FROM mods WHERE id = '$id'";
  $delete = $conn->query($delquery) or die(mysqli_error($conn));

  // Run queries and actions
  echo $delete;
}

// Table population
$query = "SELECT * FROM mods";
$result = $conn->query($query) or die(mysqli_error($conn));

以上是关于PHP查询代码禁用其他查询的主要内容,如果未能解决你的问题,请参考以下文章

sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li

PHP Wordpress查询从帖子/页面中提取片段

为啥我的复选框会禁用其他值?

你如何在 python 中处理 graphql 查询和片段?

在 Firebase 中禁用自动活动跟踪

你能用 PDO 查询帮助我理解这个 PHP 代码吗? [关闭]