Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从url获取id,并根据该id从数据库获取数据_Php_Mysqli - Fatal编程技术网

Php 从url获取id,并根据该id从数据库获取数据

Php 从url获取id,并根据该id从数据库获取数据,php,mysqli,Php,Mysqli,我有一个在db中显示博客条目的文件,我需要做的是在单击ReadMore时获取id,并显示该特定id上的数据 <?php $results = $mysqli->query("SELECT * FROM blog ORDER BY id ASC"); if ($results) { //fetch results set as object and output HTML while($obj = $results->fetc

我有一个在db中显示博客条目的文件,我需要做的是在单击ReadMore时获取id,并显示该特定id上的数据

<?php

    $results = $mysqli->query("SELECT * FROM blog ORDER BY id ASC");
    if ($results) { 

        //fetch results set as object and output HTML
        while($obj = $results->fetch_object())
        {
            echo '<div class="product">'; 
            echo '<div class="product-thumb"><img src="'.$obj->blog_img_name.'"></div>';

            echo '<div class="product-content"><h3>'.$obj->blog_name.'</h3>';
             echo '<div class="product-desc"><b>'.$obj->blog_date.'</b>'.'</div>';
            echo '<div class="product-desc">'.$obj->blog_desc.'</div>';
            echo '<div class="product-info">';
            echo '<a href="sunblog1.php?action=add&id=$id">Read more</a>';
            echo '</div></div>';
            echo '</div>';
        }

    }
    ?>

它会给你一个空白页面,因为它不会从你的链接中获取id

$id
更改为
$obj->id

 <?php

$results = $mysqli->query("SELECT * FROM blog ORDER BY id ASC");
if ($results) { 

    //fetch results set as object and output HTML
    while($obj = $results->fetch_object())
    {
        echo '<div class="product">'; 
        echo '<div class="product-thumb"><img src="'.$obj->blog_img_name.'"></div>';

        echo '<div class="product-content"><h3>'.$obj->blog_name.'</h3>';
         echo '<div class="product-desc"><b>'.$obj->blog_date.'</b>'.'</div>';
        echo '<div class="product-desc">'.$obj->blog_desc.'</div>';
        echo '<div class="product-info">';
        echo '<a href="sunblog1.php?action=add&id='.$obj->id.'">Read more</a>';
        echo '</div></div>';
        echo '</div>';
    }

}
?>

这里可能有很多原因。首先,make$blog_id=(int)$_GET[“id”];避免mysql注入。(不是这种情况下的原因,但无论如何都是有用的实践)。首先,尝试添加echo“OK”;在代码的末尾(以后可能会出现一些致命错误)。如果显示ok,则添加该行

echo $result->num_rows;
之后

$results = $mysqli->query("SELECT * FROM blog WHERE id =$blog_id");

这将显示此查询返回的行数。如果为零,则在数据库中查找,很可能传递了不正确的id。

首先,您应该学会清理用户的任何输入,尤其是在查询数据库时。对不起,我是新手,不知道如何操作。它是否影响了代码…?是的。这样查询数据库是不安全的。谷歌的“SQL注入”。阅读此问题了解更多信息谢谢,我将简要阅读并研究此主题,然后在代码中使用它。。。。!!打字错误。它必须是echo$results->num_行;谢谢你,瓦西亚,它非常有用:)非常感谢你,米内斯,它现在工作得很好…:)很乐意帮忙。。只要确认它是否适合你。以便其他人能发现它有帮助……)在stackoverflow上签字,伙计
$results = $mysqli->query("SELECT * FROM blog WHERE id =$blog_id");