PHP/SQL/Json解析

PHP/SQL/Json解析,php,mysql,json,Php,Mysql,Json,我对php非常陌生,所以我需要一些帮助。我过得很开心。。。我知道这很简单 我这里有一个php文件: 它将信息从mysql拉到json 我想要一个解析URL,通过它们的catid(未显示)来分隔文章 所以我想能够打字 等等。。。只有那些catid显示 这是我的密码: $host = "******"; $db = "******"; $user = "******"; $pass = "******"; $connection = mysql_connect($host, $user, $p

我对php非常陌生,所以我需要一些帮助。我过得很开心。。。我知道这很简单

我这里有一个php文件:

它将信息从mysql拉到json

我想要一个解析URL,通过它们的catid(未显示)来分隔文章

所以我想能够打字

等等。。。只有那些catid显示

这是我的密码:

$host = "******";
$db = "******";
$user = "******";
$pass = "******";

$connection = mysql_connect($host, $user, $pass);

//Check to see if we can connect to the server
if(!$connection)
{
    die("Database server connection failed.");  
}
else
{
    //Attempt to select the database
    $dbconnect = mysql_select_db($db, $connection);

    //Check to see if we could select the database
    if(!$dbconnect)
    {
        die("Unable to connect to the specified database!");
    }
    else
    {
        $query = "SELECT title FROM tcp_content WHERE catid=84 ORDER BY publish_up DESC LIMIT 20";
        $resultset = mysql_query($query, $connection);

        $records = array();

        //Loop through all our records and add them to our array
        while($r = mysql_fetch_assoc($resultset))
        {
            $records[] = $r;        
        }

        //Output the data as JSON
        echo json_encode($records);
    }


}

最短的解决方案是将
catid=84
更改为
catid=“.$\u GET['catid']”
,从而将catid参数插入MySQL查询

生成的线将如下所示

$query = "SELECT title FROM tcp_content WHERE catid=" . $_GET['catid'] . " ORDER BY publish_up DESC LIMIT 20";

但是,这很容易受到SQL注入的影响,因此如果这是用于任何严肃的工作,请务必切换到
mysqli_query()
PDO::query()

很抱歉听起来像是一个坏记录,但由于您是PHP新手,因此不应该学习/使用
mysql.*
数据库调用。它们正在并且可能会从新的PHP版本中删除
mysqli_*
PDO
(例如)是从PHP访问MySQL的现代方式。我不认为“这就是你如何做的,但它完全不安全,所以不要做”是一个很好的答案。至少,请利用。谢谢!那起作用了。。。我会改变的。我很感激。@JoachimIsaksson考虑到这是一个问答网站,倡导最佳实践等并不是答案的责任。一个“非常好的答案”可以是从使用mysqli/PDO(如您推荐的),到专用的ORM,再到完全处理请求的独立web框架。这个答案是最短的解决方案。