【问题标题】:Query and Fetch Comparison SQLite查询和获取比较 SQLite
【发布时间】:2013-12-14 16:21:32
【问题描述】:

我只是创建一个简单的登录脚本来检查用户名/密码,如果与数据库匹配,那么它将登录。我想我有大部分,它打开数据库,从登录中获取用户名/密码。我想我也设置了我的查询,它抓住了用户名和密码。我将如何比较它?我已经坚持了很长一段时间。我的 fetch 也无法正常工作,它给了我一个错误。我对 SQLite/Databases 很陌生,所以这可能看起来很糟糕的代码,但我正在尽我所能。

<?php

//opens database
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('UserAccounts.db');
      }
   }
   $db = new MyDB();

   //username and pw from index.html
   $user = $_REQUEST['myusername'] ; 
   $pw = $_REQUEST['mypassword'] ;

   //if there is a database, it opens.
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      //Test to see if things are working correctly.
      echo "Opened database successfully\n";
      echo "$user";
      echo "$pw";

   }
   $result = $db->query("SELECT * FROM login WHERE user = '$user' AND password = '$pw'");
   if ($result->fetchColumn() == $user) {
     $_SESSION['loggedin'] = true;
     echo "Success";
   };

   if(!$_SESSION['loggedin']){
      echo "Didn't Work";
      exit;
   };

【问题讨论】:

  • 你得到什么错误? SQLite3 类没有函数:fetchColumn() 需要用到这些函数之一php.net/manual/en/class.sqlite3result.php
  • 致命错误:在第 28 行的 /Applications/XAMPP/xamppfiles/htdocs/hcc-master/checklogin.php 中调用未定义的方法 SQLite3Result::fetchColumn()说它不存在。我真的不知道发生了什么。大声笑
  • 我最终使用 fetchArray() 应该可以工作。我现在只需要比较它们。查询如何工作?在该行之后,它实际上是否匹配用户名和密码,还是我必须进行 while 循环并将其与每个用户名和密码进行比较?
  • 你不需要比较它们,你只需要知道你真的得到了一个结果......因为数据库正在做比较。

标签: php sql database sqlite


【解决方案1】:

大概是这样的:

$fromDB = $result->fetchArray();
if ($fromDB['user'] == $user) {

【讨论】:

  • 非常感谢您的帮助!对此,我真的非常感激!我现在一切正常!! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多