使用PHP从Sqlite3数据库读取和显示值

时间:2019-02-16 06:28:35

标签: php sqlite

我正在编写一个应用程序,该程序将从SQlite3数据库中读取值并通过带PHP的webbrowser显示它们。这对我来说是新手,我尝试了几件事,但似乎无法使其正常工作!这些值在数据库中列为REAL,应为PARAM_STR。

<?php
    $db = new SQLite3('/home/pi/ECE522/test.db');
    if(!$db) {
      echo $db->lastErrorMsg();
    } else {
      echo "Opened DATABASE!";
      $query = $db->prepare('SELECT df1, df2 FROM PLCValues');
      $query->bindParm('df1', $df1,PDO::PARAM_STR);
      $query->bindParm('df2', $df2,PDO::PARAM_STR);
      $query->execute();
      var_dump($df1);
      var_dump($df2);
      echo $df1;
      echo $df2;   
   }
?>

在网页上,我得到“打开的数据库!”但是没有别的吗?

感谢任何想法!

1 个答案:

答案 0 :(得分:1)

在执行查询之前,您没有定义$ df1和$ df2,而是将其绑定为param。

$query->bindParm('df1', $df1,PDO::PARAM_STR);
$query->bindParm('df2', $df2,PDO::PARAM_STR);

您真的需要吗? 如果您只想从PLCValues表中选择“ df1”和“ df2”列中的所有值,我认为您需要这样的东西:

$res = $db->query("SELECT df1, df2 FROM PLCValues");
while (($row = $res->fetchArray(SQLITE3_ASSOC))) {
  var_dump($row);
}

有关更多信息,请参见http://php.net/manual/ru/sqlite3stmt.bindparam.php

中的示例

如果您要选择具有特定df1的值,我认为您需要这样的内容:

$stmt = $db->prepare("SELECT df1, df2 FROM PLCValues WHERE df1=:df1");
$stmt->bindParam(':df1', '[WHAT_YOU_WANT_TO_SELECT]', [YOUR_DATA_TYPE]);
$result = $stmt->execute();
var_dump($result->fetchArray());