我在PHP中的SQLite查询是这样的:
function getTableData($l_name) {
$db = new PDO("sqlite:../db/mydb.sqlite");
$results = $db->exec("SELECT * FROM Locations WHERE L_ID = '" . $l_name; . "');";
.......
}
我的问题是:
$results
?我可以分别写$results[0]
或$results[$results.length]
引用第一条记录和最后一条记录吗?foreach ($results as $record)
,在$record
当前迭代中哪里应该是Location的单个记录?records[0]
,我将如何访问该记录的字段(例如L_Name或L_ID)?谢谢你。
首先,您的代码不正确。这里是正确的版本:
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
$db = new PDO("sqlite:../db/mydb.sqlite", $opt);
$stmt = $db->prepare("SELECT * FROM Locations WHERE L_ID = ?");
$stmt->execute([$l_name]);
现在,您可以在第二个问题中使用$ stmt变量代替$ results:
我将如何使用foreach循环遍历所有记录?我是否可以foreach($ results为$ record),其中$ record应该是当前迭代中Location的单个记录?
是的你可以。
$stmt = $db->prepare("SELECT * FROM Locations WHERE L_ID = ?");
$stmt->execute([$l_name]);
foreach ($stmt as $row)
{
// do whatever
}
但是,此方法无法满足您的其他要求。
如何根据$ results获得一系列位置信息?我可以只写$ results [0]或$ results [$ results.length]分别引用第一条记录和最后一条记录吗?
要获得一个真实的数组,您需要PDOStatement::fetchAll()
方法。但是,要获取最后一个元素,语法将有所不同:
$stmt = $db->prepare("SELECT * FROM Locations WHERE L_ID = ?");
$stmt->execute([$l_name]);
$results = $stmt->fetchAll();
$first = $results[0];
$last = $results[count($results)-1];
foreach ($results as $row)
{
// do whatever
}
如果要引用单个记录,例如使用类似于records [0]的数组,我将如何访问该记录的字段(例如L_Name或L_ID)?
只是参考一下。任何时候只要一行,就可以用这种方式解决它的元素
echo $row['L_name'];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句