php - 如何滚动 PHP-Postgres SELECT FROM 查询的结果?
问题描述
我从 jQuery 中调用了一个简单的 PHP-Postgres 数据库查找函数。我在 Postgres 中使用 SELECT FROM 查询。我想验证输入的密码是否与记录中的密码匹配,并向 jQuery 返回是或否。为此,我需要滚动查询结果。
这是执行查询的 PHP 程序的一部分:
// Query the database
$email_field = $_POST['email_field'];
$password = $_POST['password'];
try {
$email_field = $_POST['email_field'];
$password = $_POST['password'];
$data = [
'email_field' => $email_field,
];
$sql = "select * from tbl01 where email=:email_field";
$stmt= $pdo->prepare($sql,[PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL]);
$stmt->execute($data);
echo "Statement selected";
print_r($stmt->errorInfo());
$no=$stmt->rowCount();
echo " No of records = ".$no;
echo PHP_EOL;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row;
echo PHP_EOL; }
} catch (PDOException $e) {
error_log($e->getMessage());
}
$pdo = null;
?>
上面的行正确执行。回显“选择的声明”;在开发控制台中显示,但没有来自:
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $row; }
所以我的问题是如何从这个查询中检索行(一个接一个)?我知道表中有一行与我发送的查询匹配,因为当我直接发出查询时,我可以在 Putty 命令行上看到它。
我认为这是一个基本问题,但我还没有找到答案。
谢谢你的帮助。
编辑:根据尼克的评论(如下),这是 print_r($stmt->errorInfo()); 返回的错误
Statement selectedArray
(
[0] => 42703
[1] => 7
[2] => ERROR: column "email_field" does not exist
LINE 1: ...SOR WITH HOLD FOR select * from tbl01 where email=email_fiel...
^
)
最新消息,感谢尼克终于成功了(见下文):
Array
(
[0] => 00000
[1] =>
[2] =>
)
1
Array
(
[date] => 2019-08-27
[0] => 2019-08-27
[email] => janis@joplin.com
[1] => janis@joplin.com
[firstname] => Janis
[2] => Janis
[lastname] => Joplin
[3] => Joplin
[password] => pwdph
[4] => pwdph
[comments] => pwdph
[5] => pwdph
[sendupdates] => Yes
[6] => Yes
)
解决方案
您的查询字符串有问题,您没有正确声明参数,应该是:email_field
:
$sql = "select * from tbl01 where email=:email_field";
此外,您在传递给的数组中有太多变量execute
。只有查询中实际使用的值才应该在其中,因此请删除该password
值。
另请注意,$row
inwhile($row = $stmt->fetch(PDO::FETCH_ASSOC))
是一个数组,因此您将需要print_r
orvar_dump
它,echo $row;
将简单地输出Array
。
推荐阅读
- r - 如何将值标签放在多边形内而不是 R 中的边缘
- python - 是一种通过按键检查 QCheckBox 的方法吗?
- php - PHP 对象解析
- google-cloud-nl - 在一些项目之间共享凭据
- javascript - 如何将多条件与三元运算符一起使用
- yaml - 是否可以在 YAML 文件中使用抽象?
- ios - 使用从第一列中选取的内容从 JSON 中显示 UIPickerView 中的第二列
- java - 需要使用 iText 的 Lowagie 实现在 PDF 标题的表格单元格内写入阿拉伯文本
- python-3.x - 将此Weigth/Score DataFrame 转换为Coulmn 名称列表,并根据Python Pandas 中的Weigth/Score Matrix Format DataFrame 进行排序
- javascript - 如何使用 javascript 'addEventlistner('click')' 函数更长时间地更改 CSS 样式?