문제점이 있습니다. 노력하고 있지만 정확한 해결책을 얻지 못하고 있습니다.데이터베이스에서 데이터를 가져 오는 중 오류 또는 경고를 catch하는 방법
데이터베이스에서 코드를 가져 오는 코드가 있습니다.
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 life is like --- >> 이것은 데이터베이스 항목을 가져 오는 파일입니다.
<?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 - >> 함수로서
질문에 대답하는 데 도움이되지 않을 수도 있지만 mysql_ * 기능 사용을 중단해야합니다. 그들은 더 이상 사용하지 않을 것입니다. 대신 [PDO] (http://php.net/manual/en/book.pdo.php) (PHP 5.1 이상 지원) 또는 [mysqli] (http://php.net/manual/en/book)를 사용하십시오. mysqli.php) (PHP 4.1부터 지원). 어느 것을 사용해야할지 모르겠다면 [이 기사를 읽으십시오] (http://www.deprecatedphp.com/mysql_/). – Matt
'try-catch' 문이 어떻게 작동하는지 모르겠습니다. '$ link'는이 시점에서 범위를 벗어날 수 있으므로'catch' 블록에서'return '을 시도해야합니다. – Matt
@Matt는 당신의 자신의 웹 사이트에 링크합니까? Em .. – treng