使用php更新数据

时间:2016-02-19 19:27:30

标签: php forms

使用以下代码时,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 个答案:

答案 0 :(得分:0)

代码中有太多错误:

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)您无法在form内使用table。这是无效的html格式。

6)阅读:How can I prevent SQL injection in PHP?