试图获取和编辑文章

时间:2017-03-01 22:16:07

标签: php sql

如何查找正确的代码以获取和编辑文章?我正在尝试这样做,但仍然得到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;}?>

1 个答案:

答案 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