目前我不得不通过记录出我的一个include来手动完成,我试过一些东西,但似乎从来没有正常工作过,而且把我的页面弄得一团糟?
include("dbconnection.php");
include("dbresults.php");
/*$sqltable = "CREATE TABLE Devices (id, dname, dmodel, ddesc, dcountry,dprivacy)";
if ($db->query($sqltable) == TRUE) {
echo "table created succesfully";
} else {
echo "error creating table: . $e->getMessage()";
}
*/
如果我删除了我的表,我得到的只是一个空白的后缀。include("dbconnection.php");
运行时,当我注释dbresults.php并取消注释表代码时,它可以正常工作,直到创建表,在刷新另一个白色页面时,直到我再次反转注释的行(回到上面的方式
dbconnection.php
try {
$db = new PDO("sqlite:".__DIR__."/database.db");
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (exception $e) {
echo "unable to connect";
echo $e->getMessage();
exit;
}
dbresults.php
$sth = $db->prepare("SELECT * FROM Devices");
$sth->execute();
while ($result = $sth->fetch(PDO::FETCH_ASSOC)) {
$dbarray[] = $result;
}
我试过把创建表放在Dbconnection.php和Dbresults.php之间,甚至放在文件本身。我尝试了多种方法,但无论我怎么做,似乎都是在dbconnection.php之后中断页面。我可以让它识别表不存在,但是一旦我去创建表,我的页面就会中断。我确信我错过了一些非常愚蠢的东西,希望有人能把我推到正确的方向,我做错了什么。
编辑: 我意识到我上面的代码没有检查表是否存在或任何东西,我试了一些东西,但没有真正的工作,所以我只是把它恢复到上面的。
你现在可能已经找到了答案,但是对于其他正在寻找解决方案的人来说,你可以简单地改变
CREATE TABLE
到
CREATE TABLE IF NOT EXISTS
而不是实际检查该表是否存在。