从mysql中提取数据的rss和json php脚本

从mysql中提取数据的rss和json php脚本,php,json,xml,rss,Php,Json,Xml,Rss,我有一个包含数据的sql数据库,我想创建两个php脚本以rss格式和json格式输出数据,但我被卡住了,因为代码有问题。。。我想。我还希望被全球认可为rss和json格式。下面是我已经拥有的两套代码 对于rss/xml <?php header("Content-Type: application/rss+xml; charset=ISO-8859-1"); /* Define db credentials */ $DBHOST = "localhost"; $D

我有一个包含数据的sql数据库,我想创建两个php脚本以rss格式和json格式输出数据,但我被卡住了,因为代码有问题。。。我想。我还希望被全球认可为rss和json格式。下面是我已经拥有的两套代码

对于rss/xml

<?php
    header("Content-Type: application/rss+xml; charset=ISO-8859-1");
/* Define db credentials */ 
    $DBHOST = "localhost";
    $DBUSER = "1";
    $DBPASS = "2";
    $DBNAME = "3";
    $rssfeed = '<?xml version="1.0" encoding="ISO-8859-1"?>';
    $rssfeed .= '<rss version="2.0">';
    $rssfeed .= '<channel>';
    $rssfeed .= '<title>RSS Feed</title>';
    $rssfeed .= '<link>http://www.123.net</link>';
    $rssfeed .= '<description>RSS Feed</description>';
    $rssfeed .= '<language>en-us</language>';
    $rssfeed .= '<copyright>Copyright (C) 2018 123.net</copyright>';
/* connect to the db */
   $conn = new mysqli($DBHOST, $DBUSER, $DBPASS, $DBNAME);
if ($conn->connect_error) { trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); }
mysqli_set_charset($conn,"utf8");
    $sql = "SELECT * FROM table ORDER BY updated_at DESC LIMIT 5";
$rs = $conn->query($sql);
if ($rs === false) { trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); } else { $row_num = $rs->num_rows; }
$rssfeed .= '<item>';
        $rssfeed .= '<title>' . $title . '</title>';
        $rssfeed .= '<desc>' . $desc . '</desc>';
$rssfeed .= '</item>';
    } 
    $rssfeed .= '</channel>';
    $rssfeed .= '</rss>';
    echo $rssfeed;
connect_error){trigger_error('数据库连接失败:'.$conn->connect_error,E_USER_error);}
mysqli_set_charset($conn,“utf8”);
$sql=“按DESC LIMIT 5更新的表格顺序选择*”;
$rs=$conn->query($sql);
if($rs==false){trigger_error('error SQL:'.$SQL.'error:'.$conn->error,E_USER_error)}else{$row_num=$rs->num_rows;}
$rssfeed.='';
$rssfeed.=''$头衔";;
$rssfeed.=''$描述‘’;
$rssfeed.='';
} 
$rssfeed.='';
$rssfeed.='';
echo$rssfeed;
对于json

<?php
/* Define db credentials */ 
    $DBHOST = "localhost";
    $DBUSER = "1";
    $DBPASS = "2";
    $DBNAME = "3";
/* connect to the db */
   $conn = new mysqli($DBHOST, $DBUSER, $DBPASS, $DBNAME);
if ($conn->connect_error) { trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); }
mysqli_set_charset($conn,"utf8");
    $query= "Select * from table ORDER BY updated_at DESC LIMIT 5";
    $result = mysql_query($query) or die ("Could not execute query");
    while ($row = mysql_fetch_array($result)) {
        extract($row);
    }
    header('Content-Type:Application/json');
    echo json_encode($array);
    mysql_free_result($result);
    mysql_close($conn);
 ?>

请尝试以下代码:

$jsonResult = [];

while ($row = mysqli_fetch_array($result)) {
    $jsonResult[] = $row;
}

header('Content-Type:Application/json');
echo json_encode($jsonResult);

在json脚本中,您将
mysqli.*
mysql.*
混合使用。替换
mysql.*
调用。为什么要提取数组而不是将项目添加到
$array
?在第一个脚本中,您甚至没有获取行。有点乱。你为什么主张混合使用两种API?特别是因为其中一个已经出现在PHP的更新版本中。看看@jeroen在问题的评论中说了什么!我正在尝试这个$query=“Select*from table ORDER BY updated_at DESC LIMIT 5”;$result=mysqli_query($query)或die(“无法执行查询”)$jsonResult=[];而($row=mysqli_fetch_array($result)){$jsonResult[]=$row;}头('Content-Type:Application/json');echo json_encode($jsonResult);mysql_free_result($result);mysql_close($conn);?>我得到一个“无法执行查询”!还有mysqli_free_result($result);mysqli_close($conn)我遇到了与我发现问题相同的错误。我使用的是$result=mysqli_查询($query),而不是$result=mysqli_查询($con,$query)。我忘了“$con”