【问题标题】:MySQL - UPDATE and DELETE QUERY not workingMySQL - 更新和删除查询不起作用
【发布时间】:2015-02-02 14:31:02
【问题描述】:

我只是编程方面的初学者,所以我只是通过教程引用我的所有代码。幸运的是,我在 youtube 上找到了这个在线教程,其中允许用户使用 php 在 mysql 中添加、更新和删除数据。我按照他的所有指示进行操作,但是当我在其上添加 css 时它停止了。

这不是一般问题,我只是需要一些帮助。如果有人可以帮助我,非常感谢。非常感谢。

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "rssfeed";

    $connect = mysql_connect($servername, $username, $password, $dbname);
    if (!$connect) {
        die("Connection failed. Error" . mysql_error());
    }

    $database = mysql_select_db($dbname, $connect);
    if (!$database) {
        die("Can't select database");
    }

    $sql = "SELECT * FROM record";
    $data = mysql_query($sql, $connect);

    if (isset($_POST['update'])){
        $updateQuery = "UPDATE record SET name = '$_POST[name]', url = '$_POST[url]', description = '$_POST[desc]' WHERE name = '$_POST[hidden]'";
        mysql_query($updateQuery, $connect);
        header("Location: maintenance.php");
    };

    if (isset($_POST['delete'])){
        $deleteQuery = "DELETE FROM record WHERE name = '$_POST[hidden]'";
        mysql_query($deleteQuery, $connect);
        header("Location: maintenance.php");
    };

    if (isset($_POST['add'])){
        $addQuery = "INSERT INTO record (name, url, description) VALUES ('$_POST[iName]', '$_POST[iUrl]', '$_POST[iDesc]')";
        mysql_query($addQuery, $connect);
        header("Location: maintenance.php");
    };


    echo "<div class=center>
        <table id=myTable border=1>
        <tr>
        <th> Name </th>
        <th> URL </th>
        <th> Description </th>
        </tr>";

    while($record = mysql_fetch_array($data)) {
        echo "<form method=post action=maintenance.php>";
        echo "<tr>";
        echo "<td>" . "<input type=text name=name id=name value=" . $record['name'] . " </td>";
        echo "<td>" . "<input type=text name=url id=url value=" . $record['url'] . " </td>";
        echo "<td>" . "<textarea rows=1 cols=50 wrap=physical name=desc id=desc>" . strip_tags($record['description']) . "</textarea></td>";
        echo "<input type=hidden name=hidden value=" . $record['name'] . ">";
        echo "<td>" . "<input type=submit name=update id=update value=update" . " </td>";
        echo "<td>" . "<input type=submit name=delete id=delete value=delete" . " </td>";
        echo "</tr>";
        echo "</form>";


    }
        echo "</table>";
        echo "<table border=1>";
        echo "<form method=post action=maintenance.php>";
        echo "<tr>";
        echo "<td><input type=text name=iName></td>";
        echo "<td><input type=text id=url name=iUrl></input></td>";
        echo "<td><textarea rows=1 cols=50 name=iDesc></textarea></td>";
        echo "<td>" . "<input type=submit name=add id=add value=add" . " </td>";
        echo "</tr>";
        echo "</form>";
        echo "</table>";
        echo "</div>";

    mysql_close($connect);
    ?> 

【问题讨论】:

标签: php mysql sql-update sql-delete


【解决方案1】:

在您的查询中,$_POST[name] 应该是 $_POST[\"name\"]。但是,这太可怕了,您对 SQL 注入非常开放。

请阅读this 并停止使用mysql_query(已弃用)

【讨论】:

  • 我以为应该是$str = "{$_POST['name']}"?
  • 感谢您的信息。我还是 mySql 的新手,不幸的是我仍然不知道如何使用 PDO :)
【解决方案2】:

您的回显输出中有几个错误..

echo "<td>" . "<input type=text name=name id=name value=" . $record['name'] . " </td>";

您忘记了每个 html-element-attribute 的单引号和多个输入元素末尾的更大的那个...

试试这个:

echo "<td><input type='text' name='name' id='name' value='" . $record['name'] . "'> </td>";

【讨论】:

  • 我以前做过,但还是不行。我的添加按钮完美运行,只是更新和删除按钮。
猜你喜欢
  • 1970-01-01
  • 2018-11-01
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
相关资源
最近更新 更多