如果mysql失败,PHP脚本将继续

时间:2010-11-22 11:10:58

标签: php mysql xml get

我有一个我正在处理的应用程序的代码:

    <?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();
?>

我有这一行:$thequery = urlencode($_GET['s']);我想将其记录到数据库中,但显然非常重要的是XML输出,所以我如何确定,如果mysql位因任何原因失败, XML仍然输出?或者我是否过于复杂?

2 个答案:

答案 0 :(得分:2)

使用ob_start()确保在执行数据库操作时没有输出返回到浏览器/客户端

答案 1 :(得分:1)

这很容易解决,只需在@(或设置错误显示关闭)前面添加mysql命令并检查返回码:

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