php - MySQL - 更新和删除查询不起作用

标签 php mysql sql-update sql-delete

我只是编程方面的初学者,所以我只是通过教程引用我的所有代码。幸运的是,我在 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);
    ?> 

最佳答案

在您的查询中,$_POST[name] 应为 $_POST[\"name\"]。但是,这太糟糕了,您对 SQL 注入(inject)非常开放。

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

关于php - MySQL - 更新和删除查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27298638/

相关文章:

php - 显示具有多个需要累加的值的左连接

mysql - 左外连接 + SUM 与 group by

php - 查询将列值设置为 0,而它应该是 10

php - MySQL 高级更新查询

php - 在一个表中更新具有多个值的多个列

php - CDN : Setting the base URL for images and JS AJAX requests

php - 在用 PHP 将密码存储到 MySQL 时尝试加密

PHP/OOP 方法覆盖 DRY 方式

php - 将 JSON 插入 MySQL 表时转义引号

mysql - 如何正确修改现有列以从设定数字自动递增