dawid kraus
dawid kraus

Reputation: 81

Cant connect to mysqli with PDO php

<?php
class DB {

    private static function connect() {
            $pdo = new PDO('mysqli:host=localhost;dbname=SocialNetwork;charset=utf8', 'root', '');
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            return $pdo;
    }

    public static function query($query, $params = array()) {
            $statement = self::connect()->prepare($query);
            $statement->execute($params);

            if (explode(' ', $query)[0] == 'SELECT') {
            $data = $statement->fetchAll();
            return $data;
            }
    }

}

When i try to insert data in the db it gets this error:

Fatal error: Uncaught PDOException: could not find driver in C:\xampp\htdocs\social-media\classes\DB.php:5 Stack trace: #0 C:\xampp\htdocs\social-media\classes\DB.php(5): PDO->__construct('mysqli:host=loc...', 'root', '') #1 C:\xampp\htdocs\social-media\classes\DB.php(11): DB::connect() #2 C:\xampp\htdocs\social-media\create-account.php(10): DB::query('SELECT username...', Array) #3 {main} thrown in C:\xampp\htdocs\social-media\classes\DB.php on line 5

Upvotes: 0

Views: 498

Answers (2)

odan
odan

Reputation: 4952

The driver name is not correct. Use "mysql:..."

$pdo = new PDO('mysql:host=localhost;dbname=SocialNetwork;charset=utf8', 'root', '');

Upvotes: 0

Baptiste
Baptiste

Reputation: 1785

You need to activate pdo_mysql in your php.ini

Look for a row with extension=php_pdo_mysql.dll using CTRL+F and restart your web environment.

Upvotes: 0

Related Questions