[英]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.