【问题标题】:delete row in phpmyadmin删除phpmyadmin中的行
【发布时间】:2021-03-27 13:33:53
【问题描述】:

我想在 phpmyadmin 中删除 第一行,但我有问题。我没有收到任何 SQL 错误。

PHP 代码

                           
if (isset($_POST['delete'])) {
    echo "deleted";
    $delete = $_POST['delete'];
    $SQL = $odb -> prepare("DELETE FROM `accounts_free`LIMIT 1");
    $SQL -> execute(array($delete));
    $notify = success('Account has been successfully deleted');
}


html

<form method="post">
<button name="delete" value="test" type="submit" class="btn btn-outline-danger"><i class="far fa-trash-alt"></i></button>
</form>

另一个按钮

<form method="post">
<button name="delete" class="btn btn-hero-success js-click-ripple-enabled" type="submit" data-toggle="click-ripple" style="margin-right:auto;margin-left:auto;overflow: hidden; position: relative; z-index: 1;">test</button>
</form>

我没有找到任何解决方案。 我不确定出了什么问题。你能帮帮我吗?

在不同的页面中,此代码正在运行 php

if (isset($_POST['delete'])) {
    $delete = $_POST['delete'];
    $SQL = $odb -> prepare("DELETE FROM `accounts_free` WHERE `id` = ?");
    $SQL -> execute(array($delete));
    $notify = success('Account has been successfully deleted');
}

html

 <button name="delete" value="<?=$rAccount['id']?>" type="submit" class="btn btn-outline-danger"><i class="far fa-trash-alt"></i></button>

【问题讨论】:

  • 您忘记了查询中的 WHERE 子句和参数占位符。打开错误报告/日志记录 - 您可能会遇到参数数量与占位符数量不匹配的错误
  • 我很确定您的 http 服务器的错误日志文件中确实出现了错误。因为你的 php 语法无效。示例:应该是$odb-&gt;prepare(...,而不是$odb -&gt; prepare(... ...您还需要在``accounts_freeLIMIT 中放置一个空白。而且您当然想要限定要删除的 哪个 行...
  • 现在页面永久刷新
  • 你的意思是它会无限刷新?这可能是由您未在此处显示的其他代码引起的单独问题。

标签: php html sql


【解决方案1】:
<?php
if (isset($_POST['delete'])) {
    $SQLSelect = $odb->query("DELETE FROM `accounts_free` ORDER BY `id` ASC LIMIT 1");
    
}

?>

这对我有用。

【讨论】:

    【解决方案2】:

    首先,在我看来,这不是 PhpMyAdmin,而是您自己的 PHP 代码。其次,正如@ADyson 和@arkascha 所建议的那样,您可能需要使用行主键指定要删除的行。例如,您可以在 &lt;form&gt; 标签中添加它:

    <input type="hidden" name="accounts_free_id" value="ACCOUT_FREE_ID_TO_DELETE">
    

    在你的if

    //space removed as @arkascha suggested
    $SQL = $odb->prepare("DELETE FROM `accounts_free` WHERE `id`='.$_POST['accounts_free_id'].'");
    

    在这个例子中,我假设accounts_free 表的标识符是id。这只是为了给您一个想法:请记住,必须检查从外部到达的每个输入,以避免 SQL 注入或其他类型的攻击尝试。

    【讨论】:

    • 感谢您的建议。但是在不同的页面中,这些代码正在工作 php ``` if (isset($_POST['delete'])) { $delete = $_POST['delete']; $SQL = $odb -> prepare("从accounts_free删除id = ?"); $SQL -> 执行(数组($delete)); $notify = success('账号已成功删除'); } ``` html ``` ```
    • 你必须删除箭头-&gt;前后的空格。
    猜你喜欢
    • 2014-10-10
    • 2016-07-31
    • 1970-01-01
    • 2011-05-18
    • 2015-05-10
    • 2015-11-25
    • 2014-03-12
    • 2016-03-03
    • 2012-08-28
    相关资源
    最近更新 更多