我有问题。我正在努力,但我没有得到确切的解决方案。
我有从数据库中获取内容的代码。
try {
require_once('blogic.php');
$obj = new blogic();
$re = $obj->select("SELECT link FROM eff ORDER BY RAND() LIMIT 1");
$l = mysql_fetch_row($re);
$link = $l[0];
} catch (Exception $e) {
$link = "http://www.xyz.com/friendsin2013/";
}
上面的代码工作正常,但是如果(无论出于什么原因)从数据库获取数据时出现任何问题,我希望链接默认为catch
块中给出的。
然而,它不按照我想要的方式工作。它在没有错误时有效,但是,当我遇到错误时,$link
没有从catch
传递。我只是得到错误消息。
Blogic.php生活就像--->>这是一个获取数据库条目的文件。
<?php
include('s.php');
class blogic {
function connect() {
$link = mysql_connect(SERVER, USER, PASSWORD);
if (!$link) {
die('Could not connect: ' . mysql_error());
return false;
} else {
return true;
}
}
function select_database() {
$db = mysql_select_db(DATABASE);
if (!$db) {
die('Could not connect: ' . mysql_error());
return false;
} else {
return true;
}
}
function select($str) {
self::connect();
self::select_database();
$res = mysql_query($str);
return $res;
}
}
?>
s.php - &gt;&gt;
答案 0 :(得分:0)
将其写为函数,然后调用它;在$link
和try
块中返回catch
:
require_once('blogic.php');
function getLink() {
try {
$obj = new blogic();
$re=$obj->select("SELECT link FROM eff ORDER BY RAND() LIMIT 1");
$l=mysql_fetch_row($re);
return $l[0];
}
catch(Exception $e) {
return "http://www.xyz.com/friendsin2013/";
}
}
$link = getLink();
答案 1 :(得分:0)
$link
/ try
逻辑之前是否定义了catch
?如果不是先尝试。
$link
似乎无法在try
/ catch
之外访问。
虽然马特打败了我最好的答案;尽可能地和他一起去。