从PHP打开SQLITE数据库并向HTML页面报告结果时出现问题



我是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.

最新更新