【问题标题】:Where are the mistakes? (Delete button) [closed]错误在哪里? (删除按钮)[关闭]
【发布时间】:2013-06-17 15:19:29
【问题描述】:

让我知道通过表单从我的数据库中删除用户的正确方法是什么。

<?php
    if (!$_POST[update])
    {
        echo
        ("<form method=\"POST\">
        <input type=\"submit\" value=\"delete\" name=\"Delete\" />
        </form>");
    }
    else{ 
         $update = mysql_query("DELETE username = 'ddd' FROM `users`;"); 
         or die(mysql_error());
}
// mysql_query("DELETE smth from users");
?>

请纠正错误,并告诉我为什么会这样:

解析错误:语法错误,磁盘中出现意外的“或”(T_LOGICAL_OR):...\xampp\htdocs\projectx\members.php 在线...

【问题讨论】:

  • !$_POST[update] 应该是 !$_POST['update'] 但您可能遇到的问题不止于此。
  • 应该是 if( !isset($_POST['update']) ) { 代码在这里...}
  • 删除; or die中的;
  • 阅读一本关于 PHP 的书。这不是学习语言语法基本原理的网站。
  • 一些 SQL 文档也可以提供帮助。这有点残酷,但编程并不是要输入随机关键字希望它们一起工作。

标签: php mysql button sql-delete


【解决方案1】:

您有多个拼写错误和语法错误:

1)

if (!$_POST['update'])
            ^------^--- missing quotes

2)

echo
(
^---  echo is not a function. brackets are not required

3)

<input type=\"submit\" value=\"delete\" name=\"Delete\" />
                                               ^^^^^^--- name mismatch

您的表单期望 update 作为参数,但您的表单只能发送 Delete,因此您的 if() 的 true 子句永远不会触发

4)

 $update = mysql_query("DELETE username = 'ddd' FROM `users`;"); or die(mysql_error());
                                                               ^---terminates statement

最后一个是你的错误的原因。

【讨论】:

  • +1,echo 是一种语言结构
【解决方案2】:
$result = mysql_query("DELETE FROM table_name WHERE username = 'ddd'") or die(mysql_error());

应该做的伎俩

【讨论】:

    【解决方案3】:

    这有一个 ;在或之前,所以这样:

    $update = mysql_query("DELETE username = 'ddd' FROM `users`;"); or die(mysql_error());
    

    应该变成这样:

     $update = mysql_query("DELETE username = 'ddd' FROM `users`;") or die(mysql_error());
    

    您还应该在您的删除语句中添加一个 where...这种形式的删除不起作用。

    "DELETE FROM `users` WHERE  username = 'ddd' ;"
    

    【讨论】:

      【解决方案4】:
      1. mysql_query() 语句后不应有分号: $update = mysql_query("DELETE username = 'ddd' FROM users;") or die(mysql_error());

      2. 您不应该在echo 中使用括号(),因为它是一种语言结构而非函数:

        回声“ ";

      3. 你应该使用''作为变量keys,并且应该像这样检查对应的键值对是否为空:

        如果 (!empty($_POST['update']))

      4. 更正这个mysql查询如下:

        $update = mysql_query("DELETE FROM users WHERE username = 'ddd'");

      5. 您应该使用与在服务器端使用 $_POST 变量检索相同的名称。

        回声“ ";

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        相关资源
        最近更新 更多