繁体   English   中英

SQLite3 无法获取列

[英]SQLite3 cant fetch columns

我编写了尽可能简单的代码来进行简单的登录,因为这是我第一次使用 SQLite3 数据库。

这是我的代码:

<?php
$db  = new SQLite3("FirstDatabase.db");

if (isset($_POST['login'])) {
    $username = $_POST['user'];
    $password = $_POST['pass'];

    $query = $db->prepare("SELECT COUNT(`id`) FROM data WHERE `username` = '$username' AND `password` = '$password'");
    $query->execute();

    $count = $query->fetchColumn();

    if($count = 1){
        echo "Welcome $username!";
    } else {
        echo "Wrong credentials";
    }
}

?>

我真的很困惑为什么这不起作用..我更新了所有扩展等。我知道这很容易受到几乎所有类型的攻击,但我只是想弄清楚 SQLite3 数据库连接。

谢谢! :)

这是我得到的错误:

致命错误:未捕获错误:调用 C:\\XAMPP\\htdocs\\PHP-Login\\index.php:41 中未定义的方法 SQLite3Stmt::fetchColumn() 堆栈跟踪:#0 {main} throw in C:\\XAMPP\\htdocs\\第 41 行的 PHP-Login\\index.php

SQL 容易受到 SQL 注入的攻击,这可能对您的数据库、系统和健康造成破坏。 首先,您应该将选择更改为参数化查询。

文档中有非常好的示例用于使用参数化查询和绑定值,更不用说本站点上的大量资源了。

该错误告诉您没有SQLite3Stmt对象的fetchColumn()方法。 PHP: SQLite3Stmt 文档证实了这一点。 它是 PDO 数据库扩展上的一种方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM