我正在尝试编写代码,该代码将从我的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>
答案 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']