PHP加载外部php文件 - Sqlite数据库连接

时间:2018-03-16 19:49:18

标签: javascript php html database sqlite

我正在创建一个使用Apache服务器在我的本地Raspiberry Pi上运行的php页面。

此php连接到Sqlite数据库并提取值并将其显示在div中。

#### ####

问题1

索引页面是一个使用以下内容的.PHP页面:

<?php
require_once('php/showall.php');  
?>

加载showall.php文件:

<?php
  try
  {
    //open the database
    $db = new PDO('sqlite:database.db');


    $result = $db->query('SELECT Name,Description,video_link FROM table2');
    foreach($result as $row)
    {
    print "<div class='section'>";
    print "<div class='row'>";
    print "<div id='info' class='col-lg-4'>";
    print "<div class='title'>".$row['Name']."</div>";
    print "<div class='description'>".$row['Description']."</div>";
    print "</div>";
    print "<div id='videodiv' class='col-lg-8'>";
    print "<div class='videoview'><video class='video' controls><source src='".$row['video_link']."'</video></div>";
    print "</div>";
    print "</div>";
    print "</div>"; 
    }

  // close the database connection
  $db = NULL;
  }
  catch(PDOException $e)
  {
    print 'Exception : '.$e->getMessage();
  }

?>

这给出了预期的输出,它是方形div,里面有名称,描述和视频。

然后我有一个按钮:

        <a class="nav-link" onclick="changetotestphp()">Click for Test</a>

在点击时运行此功能:

function changetotestphp() {

    $("#contentdiv").load("php/test.php");

}

在容器div中加载此代码我有:

<?php
print("this has worked");  
?>

再次显示预期的输出。

然后我有另一个按钮做同样的事情:

这个使用相同的代码替换div:

function changetotestphp() {

$("#contentdiv").load("php/showall.php");

}

然而,不是像第一次刷新页面那样显示内容,而是给我这个:

Exception : SQLSTATE[HY000] [14] unable to open database file

现在我认为这是因为我与数据库的连接太多了,但是我不知道如何将它们全部关闭再打开一个。

我有办法让这项工作成功吗?有一个.refreshload就像网页一样新鲜吗?

#### ####

#### ####

问题2

如上所示,我有.php脚本显示数据库中有六个的所有记录:

$result = $db->query('SELECT Name,Description,video_link FROM table2');

我的网页只有6页到一页的空间。

我不知道如何显示前6,然后点击&#34;第2页&#34;显示接下来的6?页面可以自动创建吗? (如果有12个记录只创建2个页面?如果有21个创建4个页面?

ANSWERED

我使用了这个链接并且有效:

http://php-steps.blogspot.co.uk/2016/02/php-and-sqlite-table-select-and.html

#### ####

#### ####

问题3

有没有人有一个很好的链接来创建数据库的记录?

ANSWERED

#### ####

声明

我是新人并且一直在研究上述所有问题,但我找不到自己理解并能适应我工作的答案。

我还以为我会问多个问题以避免将问题发送出去。

感谢您提供任何答案或信息。 :)

1 个答案:

答案 0 :(得分:0)

通过PREPARE / EXECUTE命令传递一行。见sqlite tutorial

但基本上是:

$sql = "INSERT INTO table VALUES(:value1, :value2, ...)";
$stmt = $this->pdo->prepare($sql);

// passing values to the parameters
$stmt->bindValue(':value1', $value1);
$stmt->bindValue(':value2', $value2);

// execute the update statement
return $stmt->execute();

如果您不使用课程,则不需要$ this-&gt ;.

如评论中所述,可以通过将LIMIT 6 OFFSET N添加到选择查询来处理偏移量。

此时确定第二个连接有什么问题。