请参阅我之前的帖子here。我做了相应的更改,但收到错误。 请帮我弄清楚这段代码中的错误。我的IDE(Aptana)在这段代码的许多行上给出了红色下划线:
<?php
/* Include dependency */
require_once("./Config/dbconfig.php");
abstract class dbconnection
{
var $conn;
try
{
//Opens connection for a MySQL DB
public function OpenConnection()
{
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die (throw new DB_Exception_Handler('Cannot connect to DB: ' . $thisException->getMessage() . '.'));
mysql_select_db(DB_NAME) or
die (throw new DB_Exception_Handler('Cannot connect to DB: ' . $thisException->getMessage() . '.'));
}
//Closes connection for a MySQL DB
public function CloseConnection()
{
mysql_close($conn);
}
}
catch(DB_Exception_Handler($thisException)
{
$thisException->ShowError();
}
}
class DB_Exception_Handler extends Exception
{
public function ShowError()
{
echo "<script>alert('". $this->getMessage() ."');</script>";
}
}
?>
答案 0 :(得分:2)
我注意到的是你班级中的try catch块,但不是在方法内。 并在函数调用中抛出一个新的异常,该函数调用期望字符串或int(die())。
如果使用@符号表示错误消息,则两个数据库函数如果失败则返回false。
此外,您正在调用引用$ thisException上的函数,该函数在当前作用域中不存在。但这可能是因为并非所有代码都在这里。
<?php
/* Include dependency */
require_once("./Config/dbconfig.php");
abstract class dbconnection {
var $conn;
//Opens connection for a MySQL DB
public function OpenConnection() {
$conn = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$conn) {
throw new DB_Exception_Handler('Cannot connect to DB: ' . mysql_error() . '.');
}
if(mysql_select_db(DB_NAME) == false) {
throw new DB_Exception_Handler('Cannot connect to DB: ' . mysql_error() . '.');
}
}
//Closes connection for a MySQL DB
public function CloseConnection()
{
mysql_close($conn);
}
}
class DB_Exception_Handler extends Exception
{
public function ShowError()
{
echo "<script>alert('". $this->getMessage() ."');</script>";
}
}
?>