PHP/SQL/Json解析
我对php非常陌生,所以我需要一些帮助。我过得很开心。。。我知道这很简单 我这里有一个php文件: 它将信息从mysql拉到json 我想要一个解析URL,通过它们的catid(未显示)来分隔文章 所以我想能够打字 等等。。。只有那些catid显示 这是我的密码: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
$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框架。这个答案是最短的解决方案。