使用php pdo更新行

使用php pdo更新行,php,mysql,pdo,Php,Mysql,Pdo,我在我的网站上创建了一个新闻部分,并希望能够在需要时进行更新。 我让它使用旧的mysql方法工作,但想通过使用PDO来改变它 有人能指出我的错误吗。表单拉入数据供我更新,但它从错误的行/id拉入。 我的问题是: <?php $post_title = ""; $description = ""; $id = $_GET['id']; $query = $db->query("SELECT title, description FROM htp_news WHERE id='$id'

我在我的网站上创建了一个新闻部分,并希望能够在需要时进行更新。 我让它使用旧的mysql方法工作,但想通过使用PDO来改变它

有人能指出我的错误吗。表单拉入数据供我更新,但它从错误的行/id拉入。

我的问题是:

<?php
$post_title = "";
$description = "";
$id = $_GET['id'];

$query = $db->query("SELECT title, description FROM htp_news WHERE id='$id'");

$post_title     = $db->query('SELECT title FROM htp_news')->fetchColumn();
$description    = $db->query('SELECT description FROM htp_news')->fetchColumn();

?>

这是我的表格,我在数据中回荡

<form method="post" action="update-news.php">
<input type="hidden" name="ud_id" style="width: 100%" value="<?php echo "$id"; ?>">

<div class="grid_12 botspacer60">


Title: <input type="text" name="ud_title" value="<?php echo "$post_title"; ?>">
<br /><br />

News Details:<br />
<textarea id="tiny_mce" name="ud_description" rows="8"><?php echo "$description"; ?></textarea>

试试这个

<?php

$sth = $dbh->prepare('SELECT id, title, description FROM htp_news WHERE id = :id')
$sth->bindValue(':id', $_POST['ud_id'], PDO::PARAM_INT);
$sth->execute();

$row = $sth->fetch(PDO::FETCH_ASSOC);

?>
<form method="post" action="update-news.php">
<input type="hidden" name="ud_id" style="width: 100%" value="<?php echo $row[0]['id']; ?>">

<div class="grid_12 botspacer60">


Title: <input type="text" name="ud_title" value="<?php echo $row[0]['title']; ?>">
<br /><br />

News Details:<br />
<textarea id="tiny_mce" name="ud_description" rows="8"><?php echo $row[0]['description']; ?></textarea>


@YourCommonSense我就知道你会第一个回答我的问题,并对我的问题投反对票。我只是想向你们学习。这不是这个网站的目的吗?这正是你做错的地方。“在这里向你们学习”确实是个离题的话题。堆栈溢出不是教程网站。你把它和tuts+混淆了。把一些随机的代码串在一起,然后问“一些提示”并不是这里的问题。我这辈子唯一害怕的是一个外科医生,在给我治疗之前,他会在这样的网站上问类似的问题。我相信你无法想象。但出于某种原因,人们把编程看作是一种野餐,任何一个蹒跚学步的孩子都能很快掌握这个想法。让我告诉你不是这样的!这需要多年的努力工作和学习。不少于手术所需的时间。所以,要么学习它,要么把它留给未来professionals@YourCommonSense我很清楚这有多难,如果简单的话,我不会在早上2点问这个问题,而我必须在早上8点上班。如果你在一个问题上展示了一个不完整的表格,其中表格是一个重要的部分,人们会问剩下的部分在哪里,因为在这里问问题的很多人忽略了重要的代码,在90%的情况下,这是他们代码的问题。因此,我建议您只发布问题的相关部分,但请确保问题的可编译版本,以便其他人可以重现问题。您必须指导您如何解决问题。感谢您向我展示如何减少查询,但不幸的是,它不起作用。我现在只得到空白字段。没有任何信息。不过我会继续做下去,试着让它工作。查询在phpmyadmin中工作吗?url中是否有一个n id?随着我在原始帖子页面顶部发布的更新,它工作了,所以要回答您的问题,是和是/admin/news/edit news.php?id=116。
<?php

$sth = $dbh->prepare('SELECT id, title, description FROM htp_news WHERE id = :id')
$sth->bindValue(':id', $_POST['ud_id'], PDO::PARAM_INT);
$sth->execute();

$row = $sth->fetch(PDO::FETCH_ASSOC);

?>
<form method="post" action="update-news.php">
<input type="hidden" name="ud_id" style="width: 100%" value="<?php echo $row[0]['id']; ?>">

<div class="grid_12 botspacer60">


Title: <input type="text" name="ud_title" value="<?php echo $row[0]['title']; ?>">
<br /><br />

News Details:<br />
<textarea id="tiny_mce" name="ud_description" rows="8"><?php echo $row[0]['description']; ?></textarea>