我正在创建一个使用Apache服务器在我的本地Raspiberry Pi上运行的php页面。
此php连接到Sqlite数据库并提取值并将其显示在div中。
索引页面是一个使用以下内容的.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就像网页一样新鲜吗?
如上所示,我有.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
有没有人有一个很好的链接来创建数据库的记录?
ANSWERED 的
我是新人并且一直在研究上述所有问题,但我找不到自己理解并能适应我工作的答案。
我还以为我会问多个问题以避免将问题发送出去。
感谢您提供任何答案或信息。 :)
答案 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
添加到选择查询来处理偏移量。
此时确定第二个连接有什么问题。