使用 php 同步更新数据


Updating data dyanamically using php

使用以下代码时,mysql 数据库中的值不会更新。我想使用文本框中输入的新值更新数据库地狱。

    <?php
    $con=mysql_connect("localhost","host","pass");
    mysql_select_db("Host",$con);
    if(isset($_POST['update'])){
    $upd= "UPDATE hell SET name='".$_POST['name']."'
    WHERE rno='".$_POST['rno']."'";
    mysql_query($upd,$con);
    }
    $sql="SELECT * FROM hell";
    $rec=mysql_query($sql,$con);
    ?>
    <html>
    <body>
    <table width="600" border="1" cellspacing="1" cellpadding="1">
    <tr>
    <th>Name</th>
    <th>Roll No.</th>
    </tr>
    <?php
    while($arr=mysql_fetch_assoc($rec))
    {
    echo "<form action=untitled2.php method=post>";
    echo "<tr>";
    echo "<td>"."<input type=text name='name' value='".$arr['name']."'>"."
    </td>";
    echo "<td>".$arr['rno']."</td>";
    echo "<input type=hidden name='rno' id='rno' value='".$arr['rno']."'>";
    echo "<td>"."<input type=submit value='update'>"."</td>";
    echo "</tr>";
    echo "</form>";
    }
    ?>
    </table>
    </body>
    </html>

代码中有很多错误:

1)不要使用mysql_*。它已被弃用并从 PHP 7 中删除。使用 mysqli_*PDO

2)Mysql连接应该像这样使用:

$con = mysql_connect("localhost","host","pass");
mysql_select_db("Host",$con);

3) 您的更新查询错误,正在执行。试试这个:

$upd= "UPDATE hell SET name='".$_POST['name']."' WHERE rno='".$_POST['rno']."'";
mysql_query($upd,$con);

4)选择查询执行应该是这样的:

$sql="SELECT * FROM hell";
$rec=mysql_query($sql,$con);

5)您不能在table内使用form。这是无效的 html 格式。

6)阅读这篇文章:如何防止PHP中的SQL注入?