如何检查表是否存在,如果不在SQLitePDO中创建?

问题描述 投票:1回答:1

目前我不得不通过记录出我的一个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之后中断页面。我可以让它识别表不存在,但是一旦我去创建表,我的页面就会中断。我确信我错过了一些非常愚蠢的东西,希望有人能把我推到正确的方向,我做错了什么。

编辑: 我意识到我上面的代码没有检查表是否存在或任何东西,我试了一些东西,但没有真正的工作,所以我只是把它恢复到上面的。

php database sqlite pdo
1个回答
0
投票

你现在可能已经找到了答案,但是对于其他正在寻找解决方案的人来说,你可以简单地改变

CREATE TABLE

CREATE TABLE IF NOT EXISTS

而不是实际检查该表是否存在。

© www.soinside.com 2019 - 2024. All rights reserved.