我是PHP新手。我需要打开一个数据库并删除一个条目,但是如果它不存在,我不想创建新的数据库。如果它不存在,我想向查询产生的HTML页面返回一个错误。
问题是
echo "Unable to open databasen";
也不是
echo "entry deletedn";
也没有
alert("entry deleted");
显示在浏览器控制台或网页上,尽管条目已成功删除。我在Mac上使用Safari。HTML页面日志显示在控制台上,但PHP页面日志没有。此外,如果从PHP页面调用,则不会弹出警报。
我想完全控制操作的成功与否,这样这些信息就可以反馈到HTML页面,并相应地触发其他方法。任何帮助都将不胜感激!感谢
<?php
class MyDB extends SQLite3
{
function __construct()
{
$this->open('myDb.db');
}
}
$db = new MyDB();
if(!$db)
{
echo "Database does not exist";
} else {
echo "Opened database successfullyn";
//Do something (delete entry)
echo "entry deletedn";
alert("entry deleted");
}
?>
$db
将始终是MyDB类的一个实例,它不能在if
中真正求值,因为它始终是真实的。所以代码echo "Database does not exist";
永远不会运行。
此外,php不会输出到浏览器控制台。php中没有内置alert
函数(但不确定您是否在其他地方定义了它(。
从文档中,SQLite3::open
不会返回任何内容,也不会说明如果无法打开数据库,是否会引发异常。文档中说,如果SQLite3::__construct
无法连接,它会抛出异常,所以您应该坚持这一点(不要使用SQLite3::open
中的class MyDB
示例(。
try {
$db = new SQLite3();
echo "Opened database successfullyn";
//Do something (delete entry)
echo "entry deletedn";
} catch (Exception $e) {
// database does not exists
...
}
Would need to check your `//Do something (delete entry)` code to be sure that it's not returning earlier.