如何查找正确的代码以获取和编辑文章?我正在尝试这样做,但仍然得到mysqli_fetch_assoc()期望参数1是mysqli_result,字符串给出。
<?php
$db = mysqli_connect("localhost", "root", "root", "maturita");
if(isset($_GET['edit_art']))
{
$sql="SELECT * FROM articles WHERE id_art='{$_GET['id_edit']}'";
$query=mysqli_query($db, $sql);
while($log = mysqli_fetch_assoc($sql)):
$subject = $log["subject"];
$text = $log["text"];
?>
<div class="content2">
<div class="content title1">
Edit Article
</div>
<div class="content backgrounded">
<form action="#" method="post">
<table>
<tr>
<td>Subject: </td><td><input class="subject form form3" type="text" name="subject"><?php $subject; ?></input></td>
</tr>
<td>Text: </td><td><textarea name="text" rows="5" cols="51"><?php echo $text; ?></textarea></td>
</tr>
<tr>
<td><input type="submit" class="button button5" name="submit" value="Submit"/></td>
</tr>
</table>
</form>
</div>
</div>
<?php endwhile;}?>
答案 0 :(得分:1)
您只需使用mysqli_fetch_assoc($query)
代替mysqli_fetch_assoc($sql)
。
请不要将$_GET
,$_POST
或$_REQUEST
中的内容直接插入SQL语句,而是使用带有占位符的预准备语句。
顺便说一下。代码部分"SELECT * FROM articles WHERE id_art='{$_GET['id_edit']}'"
是正确的,只有在GET参数中提交时才会添加单个qoutes。 WHERE id_art='" . $_GET['id_edit'] . "'";
也会发生这种情况。有关详细信息,请阅读PHP手册:http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double