0

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

我使用的数据库包含

-postid int(10)

-标题文本

-作者文本

-日期日期

- 内容文本

-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>
4

2 回答 2

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 中,变量必须在没有引号的情况下使用,而引号只能用于分隔字符串。

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

<?=htmlspecialchars($row["postid"])?>
于 2013-05-05T19:15:34.577 回答
0

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

于 2013-05-05T19:16:43.933 回答