使用$ _POST从Select语句设置文本框值?

时间:2016-01-07 23:45:04

标签: php mysql pdo

我目前正在尝试创建更新类型的脚本,管理员可以点击更新按钮,数据库中已有的文本显示在文本框和文本框中。如果文本不正确,管理员可以替换文本。

我目前有一个名为"未定义索引"的错误。这是当我尝试从我的select语句设置我的文本框的值。

这是我目前的进展,

<?php
require 'configure.php';
if(isset($_GET['id']))
{
$id=$_GET['id'];
if(isset($_POST['Edit']))
{
    $sql = "UPDATE `pet` SET `pettype` = :petType WHERE id = :id";
    $statement = $pdo->prepare($sql);
    $id = $_GET['id'];
    $petType = $_POST['petType'];
    $statement->bindValue(':id', $id);
    $statement->bindValue(':petType', $petType);
    $update = $statement->execute();
if($sql)
{
header('location:index.php');
}
}
$jobID = $_GET['id'];
$stmt = $pdo->query('SELECT * FROM pet WHERE petType = "' . $jobID . '"');
$result = $stmt->fetch(PDO::FETCH_ASSOC);
}

?>

这是我的更新代码,以及我在底部的填充语句。

<form method="post" action="">
Name:<input type="text" name="petID" value="<?php echo $_POST['petID'] ?>" /><br />
Age:<input type="text" name="petType" value="<?php echo $_POST['petType'] ?>" /><br /><br />
<br />
<input type="submit" name="submit" value="update" />
</form>

这是我用来编辑数据的表格。

我已经尝试了

value="<?php echo ($pdo['petType']) ?>"
value="<?php echo $stmt['petType'] ?>"

也许有更多知识的人可以提供帮助。 谢谢

1 个答案:

答案 0 :(得分:1)

value="<?php echo $result['petType'] ?>"

但是您的代码存在的问题是您只需将$ jobID插入查询而不对其进行清理。这可能导致sql注入。