尝试使用数据库中的数据填充表单,但不插入任何数据

时间:2013-05-05 19:07:12

标签: php html mysql pdo

我正在尝试编写代码,该代码将从我的sql数据库获取信息并将其插入到要编辑的html字段中。

我使用的数据库包含

-postid int(10)

-title text

-author text

- 日期

- 内容文字

-tag1和2都是文本

当我运行错误检查时,我得到的信息是“array(1){[0] => string(5)”00000“}”我的代码中是否有任何人可以看到会导致这种情况?我完全没有想法。如果他们能解决问题,请提前感谢您的回复!

编辑:我也只使用实际存在于数据库中的postid,因此数据库中不存在所述id的信息。

编辑2:不同的问题

<?php

include("connect.php");

$delete_message_query = $db->prepare("
    DELETE FROM `blogposts`
    WHERE `postid` = :id
    ")
$delete_message_query->execute(array(
    :id => $_GET["id"]
    )
);


header("Location: edit.php");

?>

尝试使用此代码删除某一行。

     <?php
        $id = $_GET["id"];
          include ("connect.php");//database connection
          $get_blog_query = $db->prepare("
            SELECT * FROM `blogposts`
            WHERE `postid` = '$id'
            ");

          $get_blog_query->execute();




          ?>
<!DOCTYPE HTML>
    <html>
    <head>
    <title>Form Edit Data</title>
    </head>

    <body>
    <table border=1>
          <tr>
        <td align=center>Edit Blog Posts</td>
      </tr>
      <tr>
        <td>
          <table>
          <form method="post" action="edit_data.php">
          <input type="hidden" name="id" value="<? echo "$row[postid]"?>">
            <tr>       
              <td>Title</td>
              <td>
                <input type="text" name="title"
            size="20" value="<? echo "$row[title]"?>">
              </td>
            </tr>
            <tr>
              <td>Author</td>
              <td>
                <input type="text" name="address" size="40"
              value="<? echo "$row[author]"?>">
              </td>
            </tr>
            <tr>
              <td>Content</td>
              <td>
                <textarea name='content' rows=10 cols=50 id='content'value="<? echo "$row[content]"?>"></textarea>


            </td>
            </tr>
            <tr>
              <td>Catagory 1</td>
              <td>
                <input type="text" name="address" size="40"
              value="<? echo "$row[tag1]"?>">
              </td>
            </tr>
            <tr>
              <td>Catagory 2</td>
              <td>
                <input type="text" name="address" size="40"
              value="<? echo "$row[tag2]"?>">
              </td>
            </tr>
            <tr>
              <td align="right">
                <input type="submit"
              name="submit value" value="Edit">
              </td>
            </tr>
          </form>
          </table>
        </td>
      </tr>
    </table>
    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

出于某种原因,你没有使用准备好的陈述,而你应该这样做 所以,这是代码

 <?php
 include ("connect.php");//database connection
 $stmt = $db->prepare("SELECT * FROM `blogposts` WHERE `postid` = ?");
 $stmt->execute(array($_GET["id"]));
 $row = $stmt->fetch();
 ?>

另请注意,"$row[postid]"语法错误。它必须是$row["postid"]。必须在PHP中使用引号来处理变量,而引号必须仅用于分隔字符串。

此外,每个值都应该被正确编码。所以,所有这些输出都必须像这样

<?=htmlspecialchars($row["postid"])?>

答案 1 :(得分:0)

$ row [postid]不是字符串,它是一个变量,因此不需要围绕它的引号。但是这些字段需要转义,所以不要使用“$ row [title]”,请尝试$ row ['title']