2010-11-22 12 views
0

J'ai ce code pour une application je travaille sur:script actuel pour continuer si MySQL échoue

<?php 
header("Content-type: text/xml"); 
//Gather data and prepare query 
$thequery = urlencode($_GET['s']); 
$yhost = 'http://boss.yahooapis.com'; 
$apikey = 'xxxxxxxxxxxxxxxxxxxxxxxx'; 
$url = $yhost.'/ysearch/news/v1/'.$thequery.'?appid='.$apikey.'&format=xml'; 
//Get the results 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
$data = str_replace(array('<abstract>', '</abstract>'), array('<description>', '</description>'), $data); 
$results = new SimpleXmlElement($data, LIBXML_NOCDATA); 
//echo the results 
echo $results->asXML(); 
?> 

Où j'ai cette ligne: $thequery = urlencode($_GET['s']); je voudrais vous connecter à un DB, mais son évidemment Il est très important que le XML soit sorti, alors comment puis-je m'assurer, si le bit mysql échoue pour une raison quelconque, que le XML est encore sorti? Ou suis-je compliquer cela?

Répondre

2

utilisation ob_start() pour assurer AUCUN retour de sortie au navigateur/client lorsque vous effectuer la manipulation de base de données

1

facile à résoudre, juste préfixer vos commandes MySQL avec un @ (ou régler l'affichage d'erreur désactivée) et vérifier les codes de retour :

$ret = @mysql_query($query); 
if(!$ret) { 
    do error handling; 
} else { 
    continue with something else; 
} 
+0

merci pour ce ... avec ce que, les erreurs de MySQL vont être traitées, il est beaucoup plus important que le xml se plutôt que l'émis erreur mysql être résolu ... – benhowdle89

+0

où est le problème ? faites simplement 'if ($ ret! = false) {affichez vos objets mysql}', et la clause if ne sera simplement pas exécutée s'il y a une erreur Mysql. – joni