繁体   English   中英

在表单值字段中显示数据库中的值

[英]Display value from database in a form value fields

我一直在尝试将数据库中的数据显示为表单字段中的值。 但是系统一直在说“while($ row = mysql_fetch_array($ result))”这里有一个错误。所以我在这里有点混淆。 我该如何解决这个错误。 以下是我的代码。

<?php
if (isset($_GET['serialno'])){

    echo '<form action="update.php" method="post">';
    echo '<br>';
    echo '<input type="hidden" name="serialno" value="'. $_GET['serialno'] .'">';

    $con = mysql_connect("localhost","root","");
    if (!$con){
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("sys", $con);

    $id=$_GET['serialno'];
    $result = mysql_query("SELECT * FROM main WHERE serialno = $id");

    while($row = mysql_fetch_array($result)){
        echo'Date: '.'<input type="text" name="date" value="'. $row['date'] .'">'; 
        echo '<br>';
        echo'Work Description: '.'<input type="text" name="desc" value="'. $row['desc'].'">';
        echo '<br>';
        echo'Company Name: '.'<input type="text" name="comp" value="'. $row['comp'] .'">'; 
        echo '<br>';

        echo '<input name="save" type="submit" value="Save" />';
    }

    echo '</form>';
}
?>

任何人都可以帮助我..真的很感激。

您在查询中忘记了$id周围的单引号,如果添加它们,它将起作用。

$result = mysql_query("SELECT * FROM main WHERE serialno = '$id'");

mysql_query()后面添加or die(mysql_error())很聪明,这样你就可以看到错误的位置。

此外,如果有人输入' OR 1='1作为serialno ,您的脚本将选择数据库中的所有行,然后全部显示它们。 您可以通过更改$id= $_GET['serialno'];来防止这种情况$id= $_GET['serialno']; to $id=mysql_real_escape_string($_GET['serialno']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM