使用SQLite3数据库的PHP登录脚本问题

时间:2017-07-30 17:43:45

标签: php mysql sqlite

我有一个与mysql数据库一起使用的PHP登录脚本,当我尝试将其与SQLite3数据库一起使用时,我收到以下错误

  

致命错误:在第13行的C:\ xampp \ htdocs \ xport \ login.php中调用未定义的方法SQLite3Stmt :: fetchArray()

session_start();
require_once ("db.php");
$db = new MyDB();

if (!empty($_POST['log_name']) && !empty($_POST['log_password']))
{
    $records = $db->prepare('SELECT userid, regas, uemail, uname, pword FROM users WHERE uname = :uname');
    $records->bindParam(':uname', $_POST['log_name']);
    $records->execute();

    $result = $records->fetch(PDO::FETCH_ASSOC);
    //Tried this to
    //$result = $records->fetchArray(SQLITE3_ASSOC);

    if (count($result) > 0 && password_verify($_POST['pword'], $result['pword']))
    {
        $_SESSION['log_id'] = $id;
        $_SESSION['log_name'] = $username;
        $_SESSION['regas'] = $regas;
        $_SESSION['uemail'] = $uemail;
        header('Location: index.php?log_id="'.$id.'"');
    }
    else
    {
        echo 'Username or password incorrect!';
    }
}

请问,此代码使用SQLite3有什么问题,如何解决?感谢。

2 个答案:

答案 0 :(得分:0)

根据手册(您应该阅读),SQLite的execute()返回mobilePhone类型的对象,您可以通过该对象进行迭代以获取数据。

因此,改进的代码部分是:

SQLite3Result

答案 1 :(得分:0)

我用以下代码运行你的代码:

$record->fetchArray(SQLITE3_ASSOC);

它返回致命错误,但当我使用以下代码运行代码时

$record->fetch(PDO::FETCH_ASSOC);

然后它运行正常并返回一个结果对象。