加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Php PDO将数据库类型更改为SQLITE会引发错误

发布时间:2022-12-03 08:01:20 所属栏目:PHP教程 来源:互联网
导读: Php PDO将数据库类型更改为SQLITE会引发错误
phpmysqlsqlite
Php PDO将数据库类型更改为SQLITE会引发错误,php,mysql,sqlite,pdo,Php,Mysql,Sqlite,Pdo,我有一个数据库类,当我使用数据库类

Php PDO将数据库类型更改为SQLITE会引发错误

phpmysqlsqlite

Php PDO将数据库类型更改为SQLITE会引发错误,php,mysql,sqlite,pdo,Php,Mysql,Sqlite,Pdo,我有一个数据库类,当我使用数据库类型作为mysql时,一切正常,但从mysql更改为sqlite会在页面上抛出错误这是错误消息这是完整的类代码我可以通过在XAMPP上注释掉pdo sqlite扩展来解决这个问题。那些MYSQL_ATTR_INIT_命令和localhost呢?SQLite不是这样工作的。我不想问显而易见的问题,但是在SQLite数据库中有一个名为users的表吗?如果是这样,那么肯定$this->datab=new-PDOmysql:host不需要mysql:host??是

我有一个数据库类,当我使用数据库类型作为mysql时,一切正常,但从mysql更改为sqlite会在页面上抛出错误

这是错误消息

这是完整的类代码

我可以通过在XAMPP上注释掉pdo sqlite扩展来解决这个问题。

那些MYSQL_ATTR_INIT_命令和localhost呢?SQLite不是这样工作的。我不想问显而易见的问题PHP数据类型,但是在SQLite数据库中有一个名为users的表吗?如果是这样,那么肯定$this->datab=new-PDOmysql:host不需要mysql:host??是的,表确实存在。

Fatal error: Uncaught exception 'Exception' with message 'SQLSTATE[HY000]: General error: 1 no such table: users' in E:\xampp\htdocs\projects\test\pdo\database.php:33 Stack trace: #0 E:\xampp\htdocs\projects\test\pdo\index.php(3): db->select('SELECT * FROM u...') #1 {main} thrown in E:\xampp\htdocs\projects\test\pdo\database.php on line 33

class db{
    public $isConnected;
    protected $datab;
    /* Database Object */
    public function __construct($username, $password, $host, $dbname, $options=array()){
        $this->isConnected = true;
        try { 
            $this->datab = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
            $this->datab->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
            $this->datab->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        } 
        catch(PDOException $e) { 
            $this->isConnected = false;
            throw new Exception($e->getMessage());
        }
    }
    /* Disconnect from the database */
    public function disconnect(){
        $this->datab = null;
        $this->isConnected = false;
    }
    /* Select Query Against the Database */
    public function select($query, $params=array()){
            try{ 
                $stmt = $this->datab->prepare($query); 
                $stmt->execute($params);
                return $stmt->fetchAll();       
            }catch(PDOException $e){
                throw new Exception($e->getMessage());
            }       
    }
    /* Insert Query Against the Database */
    public function insert($query, $params){
            try{ 
                $stmt = $this->datab->prepare($query); 
                $stmt->execute($params);
            }catch(PDOException $e){
                throw new Exception($e->getMessage());
            }           
    }
    /* Update Query Against the Database */
    public function update($query, $params){
            return $this->insert($query, $params);
    }
    /* Delete Query Against the Database */
    public function delete($query, $params){
            return $this->insert($query, $params);
    }
}
$db = new db("root", "", "localhost", "test", array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!