Para a consulta dos dados vamos utilizar MySQLi.
O serviço não vai requerer nenhum tipo de credênciais nem limites ao número de pedidos processados o que pode ser necessário em determinadas situações.
Começamos por definir os parâmetros para estabelecer a ligação ao servidor de base de dados.
<?php
$server="servidor";
$user="utilizador";
$password="password";
$database="base_dados";
?>
De seguida temos o código do serviço propriamente dito.
<?php
require "config.php";
//ligar à base de dados com objeto
$ligacao=new mysqli($server,$user,$password,$database);
//verificar ligação
if($ligacao->connect_error)
die("Erro na ligação: ".$ligacao->connect_error);
//parametros
if(isset($_GET['format']))
$output=$_GET['format'];
else
$output="xml"; //por defeito
if($output!='JSON'&&$output!='json'&&$output!='xml'&&$output!='XML')
$output="xml";
//dados
$sql="SELECT * FROM test_users";
$resultado=$ligacao->query($sql);
if($resultado->num_rows>0){
while($registo=$resultado->fetch_assoc())
$registos[]=array("registo"=>$registo);
header("Cache-Control: no-cache, must-revalidate");
if($output=="xml"||$output=="XML"){
$conteudo="Content-type: text/xml; charset=utf-8";
header($conteudo);
$linhas="";
$linha="";
foreach($registos as $index => $registo)
{
if(is_array($registo)){
foreach($registo as $campo => $valor){
if(is_array($valor)){
foreach($valor as $tag => $val)
$linha.=adicionarTag($tag,htmlentities($val));
}
$linha=adicionarTag("registo",$linha);
}
}
$linhas = $linhas.$linha;
$linha="";
}
echo adicionarTag("registos",$linhas);
}else{
$conteudo="Content-type: application/json; charset=utf-8";
header($conteudo);
echo json_encode(array('registos'=>$registos));
}
}
function adicionarTag($tag,$texto){
$temp="<".$tag.">".$texto."</".$tag.">";
return $temp;
}
?>
Este código pode ser picado aqui.
Sem comentários:
Enviar um comentário