我想知道如何在目录中没有文件的情况下执行基本的Try Catch块打印消息
这就是我的尝试:
<?php
$dbhost = 'localhost';
$dbuser = 'admin';
$dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'files';
mysql_select_db($dbname);
mysql_query("TRUNCATE files_tbl");
if ($handle = opendir('./pdf/')) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
if ( ($file = @scandir('./pdf/') && (count($file) > 0) ) ) {
$directory_not_empty = TRUE;
} {
throw new Exception('No files in database');
} try {
@$thelist .= '<font face="Calibri" size="4"><p><b><img src="images/document.png"> '.$file.'<br></b></p></a></font>';
$query = "INSERT INTO files.files_tbl(Name) VALUES ('$file');";
mysql_query($query) or die('Error, Insert query failed' . mysql_error());
} catch (Exception $e) {
die ($e->getMessage);
}
}
}
closedir($handle);
}
?>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<title>Search the Database</title>
</head>
<body>
<div align="right"><form action="search.php" method="post">
<div align="left"><font face="Arial" size="8" ><b>Document Database</b> </font></div>
<font face="Arial" size="5px" ><b> Search: <input type="text" name="term" style="border:1px dashed #216DAB"/></b></font>
<input type="image" src="images/search1.png" name="submit" value="Search" align="right"/>
</form>
<hr size="20" noshade="noshade" color="#216DAB">
</div>
</body>
</html>
<P><font face="Arial" Size="6px" color="black" ><b>List of files</b></font></p>
<P><center><table border="0" bgcolor="#E0E0E0" style="border:1px dotted black"><td><?=$thelist?></td></table></center></p>
但是当我加载php页面时出现PHP错误。
Notice: Undefined variable: thelist in C:\xampp\htdocs\viewer\list.php on line 76
TryCatch部分:
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..") {
if ( ($file = @scandir('./pdf/') && (count($file) > 0) ) ) {
$directory_not_empty = TRUE;
} {
throw new Exception('No files in database');
} try {
@$thelist .= '<font face="Calibri" size="4"><p><b><img src="images/document.png"> '.$file.'<br></b></p></a></font>';
$query = "INSERT INTO files.files_tbl(Name) VALUES ('$file');";
mysql_query($query) or die('Error, Insert query failed' . mysql_error());
} catch (Exception $e) {
die ($e->getMessage);
}
}
}
closedir($handle);
}
答案 0 :(得分:2)
未定义“$ the list”变量
<P><center><table border="0" bgcolor="#E0E0E0" style="border:1px dotted black"><td><?=$thelist?></td></table></center></p>
看那里http://pastebin.com/jPdeieQV 见第13,31和76行
答案 1 :(得分:0)
之前你应该添加
$thelist = '';
甚至可能在之前:)
为了捕获异常,你应该把
throw new Exception(....);
在try..catch块中。