【问题标题】:Table will not update, however showing successful表格不会更新,但显示成功
【发布时间】:2014-10-17 20:13:05
【问题描述】:

我是 MYSQL 新手

当我尝试更新数据库时,结果显示成功,但项目未显示。请有人帮忙。我已经尝试通过将帖子转换为会话变量来实现它,但没有任何区别。

update_ac.php

                $name = $_POST['name'];
            $lastname = $_POST['review'];

            // Connect to server and select database.
            mysql_connect("$host", "$username", "$password")or die("cannot connect");
            mysql_select_db("$db_name")or die("cannot select DB");

            // update data in mysql database
            $sql="UPDATE reviews SET name='$name', review='$lastname' WHERE id='$id'";
            $result=mysql_query($sql);

            // if successfully updated.
            if($result){
            echo "Successful";
            echo "<BR>";
            echo "<a href='list_reviews.php'>View result</a>";
            }

            else {
            echo "ERROR";
            echo "Welcome ". $_POST['name']. "<br />";
            echo $lastname; 
            }

            ?> 

更新.php

                // Connect to server and select database.
            mysql_connect("$host", "$username", "$password")or die("cannot connect");
            mysql_select_db("$db_name")or die("cannot select DB");

            // get value of id that sent from address bar
            $id=$_GET['id'];

            // Retrieve data from database
            $sql="SELECT * FROM $tbl_name WHERE id='$id'";
            $result=mysql_query($sql);

            $rows=mysql_fetch_array($result);
        ?>

        <?php include "includes/header.php"; ?>
                <div id="bodywrap">
                    <div id="leftcol">
                    <h1>Update the form</h1>

        <form name="form1" method="post" action="update_ac.php">
        <label>Name</label>
        <input name="name" type="text" id="name" value="<? echo $rows['name']; ?>">
        <br />
        <label>Review</label>
        <input name="lastname" type="text" id="lastname" value="<? echo $rows['review']; ?>" size="15">
        <br />
        <input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
        <br />
        <input type="submit" name="Submit" value="Submit">
        </form>

        <?php
        // close connection
        mysql_close();
        ?>

【问题讨论】:

标签: php mysql database


【解决方案1】:
$name = $_POST['name'];
$lastname = $_POST['review'];

您是否注意到您使用了 $id 而不是 $_POST['id'] 或 $_REQUEST['id'] 或 $_GET['id']?缺少这个:

$id = $_POST['id'];

SQL 工作正常,因为它在找到的每个 id='' 上都进行了更新,所以这不是错误。

另外,正如其他人指出的那样,使用 mysqli,mysql 扩展很危险,可能很快就会被弃用

【讨论】:

  • 从 PHP 5.5.0 开始,旧的 mysql 扩展已被弃用。新项目应该使用 mysqli 或 PDO(我更喜欢 PDO)。见php.net/manual/en/mysqlinfo.api.choosing.php
  • 我大约 5 年没有使用 mysql 扩展,所以我实际上并没有关注它是否被弃用 =p 不过很高兴知道,我仍然在旧服务器上支持它,现在我可以了扔掉那个东西
  • 是的,要从遗留应用程序中删除已弃用的扩展将是很困难的。仅仅因为这个原因重写数百万行代码是不值得的。但是我们应该为新项目切换到更新的扩展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2017-03-17
  • 2015-03-03
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多