簡體   English   中英

如何滾動PHP-Postgres SELECT FROM查詢的結果?

[英]How to scroll the result of PHP-Postgres SELECT FROM query?

我從jQuery調用了一個簡單的PHP-Postgres數據庫查找函數。 我在Postgres中使用SELECT FROM查詢。 我想驗證輸入密碼是否與記錄中的密碼匹配,然后向jQuery返回yes或no。 為此,我需要滾動查詢的結果。

這是執行查詢的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值。

還要注意的是$rowwhile($row = $stmt->fetch(PDO::FETCH_ASSOC))是一個數組,所以你需要print_rvar_dump吧, echo $row; 將僅輸出Array

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM