尝试获取和编辑文章



应该如何看正确的代码以获取和编辑文章?我正在尝试这样做,但是仍然获得mysqli_fetch_assoc()期望参数1为mysqli_result,字符串给出。

in。
 <?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;}?>

您应该简单地使用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.string.syntax.double