SQLite в XML через PHP - PullRequest
       3

SQLite в XML через PHP

1 голос
/ 01 сентября 2010

Я уверен, что это можно сделать.Мне нужно вытащить данные из базы данных SQLite и конвертировать их в XML на лету, чтобы их можно было прочитать с помощью fusioncharts для отображения симпатичных графиков.

Я видел, что это сделано с помощью MySQL, но мне трудно найтиинформация о SQlite в XML.

<?php 

header("Content-type: text/xml"); 

$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$database = "test"; 

$linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); 
mysql_select_db($database, $linkID) or die("Could not find database."); 

$query = "SELECT * FROM blog ORDER BY date DESC"; 
$resultID = mysql_query($query, $linkID) or die("Data not found."); 

$xml_output = "<?xml version=\"1.0\"?>\n"; 
$xml_output .= "<entries>\n"; 

for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){ 
    $row = mysql_fetch_assoc($resultID); 
    $xml_output .= "\t<entry>\n"; 
    $xml_output .= "\t\t<date>" . $row['date'] . "</date>\n"; 
        // Escaping illegal characters 
        $row['text'] = str_replace("&", "&", $row['text']); 
        $row['text'] = str_replace("<", "<", $row['text']); 
        $row['text'] = str_replace(">", "&gt;", $row['text']); 
        $row['text'] = str_replace("\"", "&quot;", $row['text']); 
    $xml_output .= "\t\t<text>" . $row['text'] . "</text>\n"; 
    $xml_output .= "\t</entry>\n"; 
} 

$xml_output .= "</entries>"; 

echo $xml_output; 

Взято из http://www.kirupa.com/web/mysql_xml_php.htm

Заранее спасибо.

1 Ответ

1 голос
/ 01 сентября 2010

Вот версия кода, которую вы разместили, но с использованием SQLite вместо MySQL:

<?php

header("Content-type: text/xml");

$dbhandle = sqlite_open('sqlitedb');
$query    = sqlite_query($dbhandle, 'SELECT * FROM blog ORDER BY date DESC');
$result   = sqlite_fetch_all($query, SQLITE_ASSOC);

try {
    $db = new PDO("sqlite:/path/to/database.db");
} catch(PDOException $e) {
    die('Unable to connect to database: ' . $e->getMessage());
}
$query = $db->prepare("SELECT * FROM blog ORDER BY date DESC");
$query->execute();
$result = $query->fetchAll();

$xml_output  = "<?xml version=\"1.0\"?>\n";
$xml_output .= "<entries>\n";
foreach ($result as $row) {
    $xml_output .= "\t<entry>\n";
    $xml_output .= "\t\t<date>" . $row['date'] . "</date>\n";
    // Escaping illegal characters
    $row['text'] = str_replace("&", "&", $row['text']);
    $row['text'] = str_replace("<", "<", $row['text']);
    $row['text'] = str_replace(">", "&gt;", $row['text']);
    $row['text'] = str_replace("\"", "&quot;", $row['text']);
    $xml_output .= "\t\t<text>" . $row['text'] . "</text>\n";
    $xml_output .= "\t</entry>\n";
}

$xml_output .= "</entries>";
$db = null;

Вот документация PHP для PDO для получения дополнительной информации.

Вот учебник по использованию PDO .

EDIT: изменен код для использования PDO вместо функций sqlite_*.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...