我正在编写一个应用程序,该程序将从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;
}
?>
在网页上,我得到“打开的数据库!”但是没有别的吗?
感谢任何想法!
答案 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());